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";
}
);