当前位置:   article > 正文

文件下载-使用blob二进制流的方式下载后台文件

.net blob 下载

参考代码

  1. //url请求地址,datas传给后台的参数,fileName文件名,format文件类型后缀名如.xls
  2.  downLoadFile(url,datas,fileName,format){
  3.   this.http.post(url, datas, { responseType: 'blob' }).subscribe((result:any)=>{
  4.     const link = document.createElement('a');
  5.     const blob = new Blob([result], { type: 'application/zip' });
  6. link.setAttribute('href', window.URL.createObjectURL(blob));
  7. link.setAttribute('download', fileName + format);
  8. link.style.visibility = 'hidden';
  9. document.body.appendChild(link);
  10. link.click();
  11. document.body.removeChild(link);
  12. })
  13. };

改造代码:

  1. // 处理下载
  2. hangleDownloadFile(val){
  3. let {attachId , attachName , } = val
  4. let fileName = attachName //赋值文件名
  5. let fileType = fileName.substr(fileName.lastIndexOf(".")+1); //获取文件后缀名
  6.   download(attachId).then((result)=>{
  7.    const link = document.createElement('a'); //创建a标签
  8.    const blob = new Blob([result], { type: `application/${fileType}` });
  9. link.setAttribute('href', window.URL.createObjectURL(blob));
  10. link.setAttribute('download', fileName);
  11. link.style.visibility = 'hidden';
  12. document.body.appendChild(link);
  13. link.click();
  14. document.body.removeChild(link);
  15. })
  16. },
  17. }

注意:接受这种类型的时候要把ajax接受的格式改为blob
// 下载

  1. export function download(id) {
  2. return axios({
  3. url: `/annex/download/${id}`,
  4. method: 'get',
  5. responseType: 'blob' // 注意点
  6. })
  7. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/145169
推荐阅读
相关标签
  

闽ICP备14008679号