thinkphp 增加七牛上傳功能

Weiwen發表於2022-03-31

首先需要下載七牛的php版本sdk:軟體開發工具包 - 七牛開發者中心

將檔案重新命名:Qiniu,然後移動到extend目錄下,然後就可以直接使用。

<?
/**
 * 七牛檔案上傳處理
 */
require_once '../extend/Qiniu/autoload.php';  //引入七牛檔案
use think\Db;
use Qiniu\Auth;// 引入七牛鑑權類
use Qiniu\Storage\UploadManager;// 引入七牛上傳類
use Qiniu\Processing\PersistentFop;//縮圖持久化
class QiniuUpload extends Common{
    /**
     * [upload_files 七牛檔案上傳處理]
     * @param  [type] $files [上傳的檔案]
     * @return [type]        [description]
     */
    public function upload_files($files){
        //1.驗證檔案--省略
        //獲取七牛配置引數
        $file_path = $files->getRealPath();// 獲取檔案物件的本地路徑
        if(empty($file_path)){
            return ['code'=>-200,'msg'=>'請傳入檔案本地路徑'];
        }
        $system_cofing = system_cofing();            //獲取系統配置--氣的七牛配置快取在了系統引數中
        // 需要填寫你的 Access Key 和 Secret Key
        $accessKey = $system_cofing['qiniu_accessKey'];//"8G-G8oyFme8ltP5p_zc6XaOrzcMST9hc5YCINlsR";   登入七牛可以檢視
        $secretKey = $system_cofing['qiniu_secretKey'];//"Iz5YDPIgNWVQxO6GMAF7jWUeUf5UXyUh6HlTb7oa";   登入七牛可以檢視
        $bucket = $system_cofing['qiniu_bucket'];      //"img";   登入七牛可以檢視--儲存空間命名
        $folder = $system_cofing['qiniu_folder'];      //qiniu目錄標識
        $domain = $system_cofing['qiniu_url'];         //qiniu訪問域名
        // 構建鑑權物件
        $auth = new Auth($accessKey, $secretKey);
        // 生成上傳 Token
        $token = $auth->uploadToken($bucket);
        // 獲取檔案字尾
        $ext = strtolower(pathinfo($files->getInfo('name'), PATHINFO_EXTENSION));  //字尾
        // 上傳到七牛後儲存的檔名
        $key = $folder.'/'.date('Ymd').'/'.md5(microtime(true)).'.'.$ext;
        // 初始化 UploadManager 物件並進行檔案的上傳。
        $uploadMgr = new UploadManager(); 
        // 呼叫 UploadManager 的 putFile 方法進行檔案的上傳。
        list($ret, $err) = $uploadMgr->putFile($token, $key, $file_path);
        if ($err !== null) {
            return ['code'=>-200,'msg'=>$err->message(),'statusCode'=>$err->code];
        } else {
            return [
                'code'=>200,
                'msg'=>'上傳成功',
                'value'=>$key,            //返回儲存圖片的路徑
                'url'=>$domain.'/'.$key,  //返回儲存圖片的全路徑
            ];
        }
    }
}

以上是直接簡單使用的程式碼

本作品採用《CC 協議》,轉載必須註明作者和本文連結
最美的不是下雨天,而是和你一起躲過的屋簷!

相關文章