vue+axios下载pdf文件流

项目中用到流文件下载的需求,之前使用的方法一直都没问题,但是这次就是下载不下来,查了多种方法终于解决了,方式如下:

// 下载文件
downLoadFile(e) {
    let id = e.target.dataset.id;
    let name = e.target.dataset.name;

    if(e.target.dataset.id) {
        this.$https({
            method: 'get',
            url: '/wyxt_ubqts_oncloud/common/download',
            params: {
                'file_id': '526f260d-73c1-422e-b10e-c0a2fe91364d'
            },
            responseType: "blob"
        }).then(res => {
            // console.log(res)
            // const fileName = res.headers["content-disposition"].split("=")[1];
            const _res = res.data;
            let blob = new Blob([_res], {type: 'application/pdf'});
            let downloadElement = document.createElement("a");
            let href = window.URL.createObjectURL(blob); //创建下载的链接
            downloadElement.href = href;
            // downloadElement.download = fileName; //下载后文件名
            downloadElement.download = name; //下载后文件名
            document.body.appendChild(downloadElement);
            downloadElement.click(); //点击下载
            document.body.removeChild(downloadElement); //下载完成移除元素
            window.URL.revokeObjectURL(href); //释放掉blob对象
        });
    }
},    

  

原文地址:https://www.cnblogs.com/carriezhao/p/12156697.html