//通過覆蓋默認的上傳行為,可以自定義自己的上傳實現
// 例:阿里雲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} 文件上傳失敗.`);
}
}