Ant Design of Vue ——Upload组件 —— 自定义上传行为
//通过覆盖默认的上传行为,可以自定义自己的上传实现
// 例:阿里云OSS上传文件
customRequest(file) {
let _self = this
var formData = new FormData();
//注意formData里append添加的键的大小写
formData.append('key', _self.aliyunOssToken.key); //存储在oss的文件路径
formData.append('OSSAccessKeyId', _self.aliyunOssToken.ossaccessKeyId); //accessKeyId
formData.append('policy', _self.aliyunOssToken.policy); //policy
formData.append('Signature', _self.aliyunOssToken.signature); //签名
formData.append("file", file.file);
formData.append('success_action_status', 201); //成功后返回的操作码
file.onProgress()
axios(
{
url: _self.action,
method: 'post',
data: formData,
// headers: {'Content-Type': 'application/x-www-form-urlencoded'}
}).then(data => {
console.log(data)
let f = data.indexOf('<Location>'), l = data.indexOf('</Location>')
let str = data.substring(f+10,l)
console.log('remoteImgUrl--> ' + str)
file.onSuccess() //上传成功
}).catch( err =>{
file.onError() //上传失败
})
}
// 上传文件改变时的状态
change(info) {
const status = info.file.status;
if (status !== 'uploading') {
console.log(info.file, info.fileList);
}
if (status === 'done') {
console.log('上传成功!')
} else if (status === 'error') {
console.log(`${info.file.name} 文件上传失败.`);
}
}