zoukankan      html  css  js  c++  java
  • php ueditor上传图片到阿里oss

    来源:https://blog.csdn.net/immortalzz/article/details/81479819

    事情通知:

      1.你最好检验你平时上传oss的方法可行,因为网上的案例的oss方法不是通用的。

      2.修改你平时上传oss时调用的$ossClient->uploadFile()的第三个参数,因为如果使用平时的$_FILES['file']['tmp_name']作为文件上传路径是不可行的!你需要使用百度编辑器自定义的路径:$this->filePath。

    代码:

    uploader.class.php:

    //找到private function upFile()

    //移动文件
    if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //移动失败
        $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
    } else { //移动成功
        require_once('../../../../../vendor/aliyun/autoload.php');
        $accessKeyId = "";//去阿里云后台获取秘钥
        $accessKeySecret = "";//去阿里云后台获取秘钥
        $endpoint = "";//你的阿里云OSS地址
        $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
        $bucket= "";//oss中的文件上传空间
        $object = 'test/'.md5(time()).".jpg";//想要保存文件的名称
        $file = $_SERVER['DOCUMENT_ROOT']."/".$this->fullName;//文件路径,必须是本地的。
        try{
            $ossClient->uploadFile($bucket,$object,$file);
            //上传成功,自己编码
            // 删除本地文件
            unlink($file);
            // 定义全局变量存储图片的oss路径
            $GLOBALS['ossimgurl'] = "https://".$bucket.".".$endpoint."/".$object;
            $this->stateInfo = $this->stateMap[0];
        } catch(OssException $e) {
            //上传失败,自己编码
            $this->stateInfo = "上传到oss失败";
        }
    }

    修改百度编辑器,修改能直接显示oss的文件:

    //富文本图片路径改为阿里oss地址
    public function getFileInfo()
        {
            return array(
                "state" => $this->stateInfo,
    //            "url" => $this->fullName,
                "url" => $GLOBALS['ossimgurl'],
                "title" => $this->fileName,
                "original" => $this->oriName,
                "type" => $this->fileType,
                "size" => $this->fileSize
            );
        }

     我个人的:

     //移动文件
            if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //移动失败
                $this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");
            } else { 
    //移动成功
                require_once('./../../../ThinkPHP/Library/Vendor/aliyun-oss/autoload.php');
    
                $oss = [
                    'OSS_BUCKET' => '',
                    'OSS_KEY_ID' => '',
                    'OSS_SECRET' => '',
                    'OSS_HOST' => '',
                    'OSS_FOLDER' => '',
                    'OSS_IMG' => ''
                ];
                $newFile = $_FILES['upfile'];
                $object = $newFile['name'];
                $ossClient = new OSSOssClient($oss['OSS_KEY_ID'], $oss['OSS_SECRET'], $oss['OSS_HOST']);
                $result = $ossClient->uploadFile($oss['OSS_BUCKET'], 'goods/' . date('Ymdhis') . '/' . $object, $this->filePath);
                unlink($this->filePath);
                $GLOBALS['ossimgurl'] = $result['info']['url'];
                $this->stateInfo = $this->stateMap[0];}
  • 相关阅读:
    SQL Server2016 AlwaysOn无域高可用
    Windows Server 2016 无域故障转移群集
    SQL Server高可用实现方案
    oracle11g RMAN catalog的基本使用
    Oracle_Windows server ORA-01031: insufficient privileges
    MySQL MGR 单主模式下master角色切换规则
    SQL Server AlwaysOn原理简介
    DB2创建视图并授权给其他用户
    Oracle数据库用户的密码过期问题处理
    访问GitLab的PostgreSQL数据库
  • 原文地址:https://www.cnblogs.com/laijinquan/p/13503730.html
Copyright © 2011-2022 走看看