實現文件上傳進度條及解決request.upload.addEventListener in not a function問題

使用axios上傳文件時需要進度條,可通過監聽axios的onUploadProgress獲取當前文件上傳進度,進度條可以用antd的Progress
實現過程中出現問題request.upload.addEventListener in not a function。
參考南柯一夢的博客https://www.cnblogs.com/leeke98/p/10491358.html
原來和mockjs有關,把項目中mockjs的引用去掉,問題迎刃而解

const [uploading, setUploading] = useState(false);
const [percent, setPercent] = useState(null);

const upload = async () => {
  const config = {
    onUploadProgress: (progressEvent) => {
      const percentNum = Math.round((progressEvent.loaded * 100) / progressEvent.total);
      console.log(percentNum);
      setPercent(percentNum);
    },
    withCredentials: true,
  };
 let url = 'api/xxx';
 const formData = new window.FormData();
 formData.append("file",file); //上傳的數據
  try {
    setUploading(true);
    const { err, status } = await axios.post(url, formData, config);
  } catch (e) {
    console.log('ignore', e);
  }
  setUploading(false);
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章