IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> Ueditor + PHP 实现阿里云Oss上传 -> 正文阅读

[PHP知识库]Ueditor + PHP 实现阿里云Oss上传

一、安装oss SDK

1.在GitHub中选择相应版本并下载打包好的zip文件。

https://github.com/aliyun/aliyun-oss-php-sdk/releases?spm=a2c4g.11186623.2.12.544626fdfihDfy

链接如果打不开,可取阿里云官网找下

2.解压后的根目录中包含一个autoload.php文件,在代码中引入此文件:

require_once '/path/to/oss-sdk/autoload.php';

3.设置oss上传方法

<?Php
//引用oss
if (is_file('../autoload.php')) {
    require_once ('../autoload.php');
}
use OSS\OssClient;
use OSS\Core\OssException;

/**
 * Notes: 阿里云配置Ueditor上传
 * Created by assasin.
 * Request-Method: POST+AES
 */
class OssInUe
{
    public function __construct(){

    }

    /**
     * Notes: 阿里云配置Ueditor上传
     * Created by assasin.
     * Request-Method: POST+AES
     */
    function uploadToAliOSS($file,$fullName){
        $accessKeyId = 'xxxxxxxxxxxxxx';//涉及到隐私就不放出来了
        $accessKeySecret = 'xxxxxxxxxxxxxxxxxxxxx';//涉及到隐私就不放出来了
        $endpoint = 'xxxxxxxxxxxx';//节点
        $bucket= 'xxxxxxxxx';//" <您使用的Bucket名字,注意命名规范>";
        $object = $fullName;//" <您使用的Object名字,注意命名规范>";

        $content = $file["tmp_name"];//上传的文件
        try {
            $ossClient = new OssClient($accessKeyId, $accessKeySecret, $endpoint);
            $ossClient->setTimeout(3600 /* seconds */);
            $ossClient->setConnectTimeout(10 /* seconds */);
            //$ossClient->putObject($bucket, $object, $content);
            // 先把本地的example.jpg上传到指定$bucket, 命名为$object
            $ossClient->uploadFile($bucket, $object, $content);
            $signedUrl = $ossClient->signUrl($bucket, $object);
            $path = explode('?',$signedUrl)[0];
            $obj['status'] = true;
            $obj['path'] = $path;
        } catch (OssException $e) {
            $obj['status'] = false;
            $obj['path'] = "";
            print $e->getMessage();
        }
        return $obj;
    }
}

4.修改?Uploader.class.php

顶部引用oss方法,代码大概123行,注释:

//创建目录失败
//        if ( !file_exists( $dirname ) && !mkdir( $dirname, 0777, true ) ) {
//            $this->stateInfo = $this->getStateInfo( "ERROR_CREATE_DIR" );
//            return;
//        } else if ( !is_writeable( $dirname ) ) {
//            $this->stateInfo = $this->getStateInfo( "ERROR_DIR_NOT_WRITEABLE" );
//            return;
//        }
//
//        //移动文件
//        if ( !( move_uploaded_file( $file[ "tmp_name" ], $this->filePath ) && file_exists( $this->filePath ) ) ) { //移动失败
//            $this->stateInfo = $this->getStateInfo( "ERROR_FILE_MOVE" );
//        } else { //移动成功
//            $this->stateInfo = $this->stateMap[ 0 ];
//        }
//
//        if($this->water){//水印
//            $this->watermark($this->filePath,$this->filePath);
//        }

底部添加oss上传方法:

$ossInUe = new OssInUe();
$obj = $ossInUe->uploadToAliOSS($img,$this->fileType);
if ($obj['status'] == true){
$this->fullName = $obj['path'];
$this->stateInfo = $this->stateMap[0];
}else{
$this->stateInfo = $this->getStateInfo("ERROR_WRITE_CONTENT");
}

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2022-02-14 20:53:46  更:2022-02-14 20:54:12 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 11:28:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码