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上傳成功。提示:使用七牛雲之前先註冊七牛雲,否則無法使用。