Upload 上傳組件 自定義上傳
使用http-request屬性 覆蓋默認的上傳行為,會向自己定義的方法傳入一個當前上傳實例,
要顯示進度條就需要手動調用onProgress(e)方法
{
action:""
data:undefined
file:File
filename:"file"
headers:Object
onError:onError(err)
onProgress:onProgress(e)
onSuccess:onSuccess(res)
withCredentials:false
}
實現進度條代碼(這里貼出axios的代碼)
let form = new FormData();
//uploader為之前提到的實例
form.append("file", uploader.file);
axios .post(url,form, {
headers: {
"Content-Type": "multipart/form-data"
},
onUploadProgress: progressEvent => {
let percent=(progressEvent.loaded / progressEvent.total * 100) | 0
//調用onProgress方法來顯示進度條,需要傳遞個對象 percent為進度值
uploader.onProgress({percent:percent})
}
}).then((res)=>{
//上傳成功 調用onSuccess方法,否則沒有完成圖標
//處理自己的邏輯
uploader.onSuccess()
}).catch((err)=>{
//上傳失敗 調用onError方法
//處理自己的邏輯
uploader.onError()
})