1. 程式人生 > >tp5上傳圖片到七牛雲

tp5上傳圖片到七牛雲

利用七牛雲作為圖片伺服器來使用,為什麼使用七牛雲,使用七牛雲的好處有很多,節省自己的伺服器空間,七牛雲的使用方便,便宜。好了下面就說下TP5使用七牛雲進行檔案上傳。

第一步,下載七牛雲的PHPSDK包,將下載好的SDK包放入Vendor資料夾下改名Qiniu

PHP的SDk下載地址https://files.cnblogs.com/files/zonglonglong/qiniu-php-sdk-7.2.2.rar

第二步,配置檔案新建配置檔案,qiniu.php將檔案放入application的extra資料夾下,在qiniu.php中程式碼如下

return [
         'accessKey'=>'你自己的ak',
         'secretKey'=>'你自己的sk',
         'bucket'=>'你的物件空間',//上傳空間名稱
         'DOMAIN'=>'你的空間繫結域名.bkt.clouddn.com'//空間繫結的域名
     ];

第三步,在控制器中新建一個方法程式碼如下在控制器中引用相關類

use think\config;
//引入七牛雲的相關檔案
use Qiniu\Auth as Auth;
use Qiniu\Storage\BucketManager;
use Qiniu\Storage\UploadManager;

  public function Upload()
    {
        $file = request()->file('file');
        // 要上傳圖片的本地路徑
        $filePath = $file->getRealPath();
        $ext = pathinfo($file->getInfo('name'), PATHINFO_EXTENSION);  //字尾
        // 上傳到七牛後儲存的檔名
        $key =substr(md5($file->getRealPath()) , 0, 5). date('YmdHis') . rand(0, 9999) . '.' . $ext;
        require_once APP_PATH . '/../vendor/Qiniu/autoload.php';
        // 需要填寫你的 Access Key 和 Secret Key
        $accessKey = Config::get('qiniu.accessKey');
        $secretKey = Config::get('qiniu.secretKey');
        // 構建鑑權物件
        $auth = new Auth($accessKey, $secretKey);
        // 要上傳的空間
        $bucket = Config::get('qiniu.bucket');
        $domain = Config::get('qiniu.DOMAIN');
        $token = $auth->uploadToken($bucket);
        // 初始化 UploadManager 物件並進行檔案的上傳
        $uploadMgr = new UploadManager();
        // 呼叫 UploadManager 的 putFile 方法進行檔案的上傳
        list($ret, $err) = $uploadMgr->putFile($token, $key, $filePath);
        if ($err !== null) {
            return ["err"=>1,"msg"=>$err,"data"=>""];
        } else {
            //返回圖片的完整URL
            return ["err"=>0,"msg"=>"上傳完成","data"=>($domain .'/'. $ret['key'])];
        }
    }


第四步OK上傳成功。提示:使用七牛雲之前先註冊七牛雲,否則無法使用。