该问题通常是由于 Axios 的参数配置中 responseType 的取值不当引起的。应将其设置为 "blob",才能让进度条在请求完成后才跳到100%。
示例代码:
axios.post(url, formData, {
headers: { 'content-type': 'multipart/form-data' },
onUploadProgress: function(progressEvent) {
// 将上传进度的百分比传递给父组件来更新进度条显示
let uploadPercentage = parseInt(Math.round((progressEvent.loaded * 100) / progressEvent.total))
this.$emit("update:progress", uploadPercentage)
},
responseType: 'blob' // 注意这个配置项
}).then(response => {
// 上传完成后进行处理
}).catch(error => {
// 上传失败后进行处理
})