上传文件时如何实时显示进度条?
我用 axios 上传文件,但搞不懂怎么拿到上传的实时进度。
试过 onUploadProgress 回调,但进度条要么不动,要么直接跳到100%,根本没用。是不是我写法有问题?
axios.post('/upload', file, {
onUploadProgress: (progressEvent) => {
const percent = Math.round((progressEvent.loaded * 100) / progressEvent.total);
setProgress(percent); // React 状态更新
}
})
记得检查下后端是不是按chunk返回的进度数据,有时候服务端写得不好也会导致这个问题。另外
setProgress用完再调一次自己,可以确保React状态更新更及时。拿去改改应该能行,不行再来找我吐槽。