vue axios 下載流文件zip包 無法打開/解壓 postman測試下載一切正常


一、代碼下載的zip與postman下載的zip文件對比,大小不一樣,postman下載的文件可以正常解壓,代碼下載的文件解壓報錯,如下圖;

 

 

 

 

二、上代碼

  axios({
    method: 'post',
    url: url,
    headers: {
      'content-type': 'application/json;charset=utf-8',
    },
    responseType: 'blob',
    data: data
  }).then(res=>{
    console.log(res)
    let blob = new Blob([res.data], {type: 'application/zip'});
    if ('download' in document.createElement('a')) { // 非IE下載
      const elink = document.createElement('a')
      let fileName= window.decodeURI(res.headers['content-disposition'].split('=')[1], "UTF-8")
      elink.target = "hrefTemplate";
      elink.download = fileName;
      elink.href = URL.createObjectURL(blob)
      elink.click()
      URL.revokeObjectURL(elink.href) // 釋放URL 對象
    } else { // IE10+下載
      navigator.msSaveBlob(blob, fileName)
    }
  })

 

三、對比打印結果,如下圖, 分析得出原因:使用了mockjs模擬數據 導致的返回結果錯誤,解決辦法就是注釋掉mock引用。

     

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM