fastadmin 上傳圖片或視頻至七牛雲


 

在 app/config 文件中的最后新增 七牛配置

    'qiniu' => [
        "use" => 0,

        "domain" => 'http://cdn.wqw168.com/',
        "bucket" => 'ghyl',
        "accessKey" => 'kizAtNRPdAv26H4dNCJacScMa3D2PZ57y167W3I6',
        "secretKey" => 'npjZ_PcN4DaoWKiv7KUA7v0CbI81OtSh2xQqPifx',
    ],

 

 

在 app/common/controller 下新建 Qiniu.php 文件

<?php

namespace app\common\controller;

use think\Config;
use Qiniu\Auth;
use Qiniu\Storage\UploadManager;

/**
 * 七牛基類
 */
class Qiniu extends Backend
{

    public function initialize()
    {


    }

    /** * 上傳
     * @param array $file 圖片參數
     * @return array
     */
    public function uploadOne()
    {
        $data = $this->request->file();
        $info = $data['file']->getInfo();

        $domain = config("qiniu.domain");
        $bucket = config("qiniu.bucket");
        $auth = new Auth(config("qiniu.accessKey"), config("qiniu.secretKey"));
        // 生成上傳Token
        $token = $auth->uploadToken($bucket);

        // 構建 UploadManager 對象
        $uploadMgr = new UploadManager();
        list($ret, $err) = $uploadMgr->putFile($token, $info['name'], $info['tmp_name']);
        if ($err !== null) {
            return ['code' => 0,  'msg' => '上傳失敗'];
        } else {
            //返回圖片的完整URL
            return ['code' => 1, 'msg' => '上傳完成', 'data' => ($domain . $ret['key'])];
        }
    }
}

 

然后修改上傳文件接口的地方:api/common/upload,正常情況下只需修改 else 里的內容

    if ($chunkid) {//這里的地方不用修改,因為這里是分片上傳的
        } else {
            if (config("qiniu.use")) {
                //默認普通上傳文件
                $qiniu = new \app\common\controller\Qiniu;
                $rs = $qiniu->uploadOne();
                if ($rs["code"] == 0) {
                    $this->error($rs["msg"]);
                }
                $this->success(__('Uploaded successful'), '', ['url' => $rs["data"], 'fullurl' => $rs["data"]]);
            } else {
                $attachment = null;
                //默認普通上傳文件
                $file = $this->request->file('file');
                try {
                    $upload = new Upload($file);
                    $attachment = $upload->upload();
                } catch (UploadException $e) {
                    $this->error($e->getMessage());
                }

                $this->success(__('Uploaded successful'), ['url' => $attachment->url, 'fullurl' => cdnurl($attachment->url, true)]);
            }

        }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM