Dcat 檔案上傳文件
由於dcat檔案上傳是先傳到伺服器再轉發到七牛雲的, 所以會在進度條走完之後還要等待一段時間, 使用體驗不好, 且容易超時
琢磨了好久, 貼出來分享一下
// 隨機檔名
$filename = md5(uniqid()) . '.mp4';
$disk = Storage::disk('qiniu');
// 回撥資訊, Dcat 上傳檔案需要的報文格式
$callBack = [
'status' => true,
'data' => [
'id' => $filename,
'name' => $filename,
'path' => $filename,
'url' => 'http://' . env('QINIU_DOMAINS') . '/' . $filename,
],
];
$policy = [
'returnBody' => json_encode($callBack),
];
// 七牛雲上傳 token
$token = $disk->uploadToken($filename, 3600, $policy);
$form->file('video1', '上傳影片')
// 更改儲存驅動
->disk('qiniu')
// 自動上傳
->autoUpload()
// 限制檔案上傳格式
->accept('mp4')
// 提示文字
->help('僅支援MP4格式')
// 更改檔案最大限制
->maxSize(512000)
// 關閉頁面刪除
->removable(false)
// 設定上傳地址
->url('http://upload-z2.qiniup.com')
// 自定義 webuploader 配置
// Dcat 預設 name 為 _file_
->options(['fileVal' => 'file'])
// 上傳事件
->on('startUpload', <<<JS
function () {
console.log('檔案開始上傳...', this);
// 上傳檔案前附加自定義引數到檔案上傳介面
this.uploader.options.formData['token'] = "$token";
this.uploader.options.formData['fileName'] = "$filename";
this.uploader.options.formData['key'] = "$filename";
}
JS
);
本作品採用《CC 協議》,轉載必須註明作者和本文連結