首页 » 读书笔记 » 正文

你真的了解怎样使用Blob嘛?

小白来告诉你:* new Blob([data])用来创建URL的file对象或者blob对象**

关于下载在页面直接写url地址也是可以下载的,

window.location.href=“text.pdf”;

但后端接口有的时候要求传给我们前端的是文件流格式,前端处理方式如下

  that.$http({
                      method:"get",
                      url:api.exportContract+'/'+agreementId+'/'+docNumber,
                      headers:headers('application/x-download'),
                      responseType: 'blob',
                  }).then(function(res){                    
let url = window.URL.createObjectURL(new Blob([res.data]));  
// new Blob([data])用来创建URL的file对象或者blob对象
                          let link = document.createElement('a');
                          link.style.display = 'none';
                          link.href = url;
                               link.download= docNumber+'.pdf'; //docNumber 动态文件名
                          document.body.appendChild(link);
                          link.click();
                  });

Vue下载本地pdf文件

<button @click="downloadPDf">downloadPDf</button>
 downloadPDf() {
        axios.post('http://localhost:8080/static/test.pdf', {          
responseType: 'blob', //重要
        }).then(response => {          
const url = window.URL.createObjectURL(new Blob([response.data])); 
         const link = document.createElement('a');          let fname = 'report.pdf';
          link.href = url;
          link.setAttribute('download', fname);          document.body.appendChild(link);
          link.click();
        })
      }
    }

小白提醒下你:记住本地文件一定要放在static文件夹下面。