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文件夹下面。

猜你喜欢

转载自blog.csdn.net/weixin_43278947/article/details/85120298