测试积点老人 发表于 2022-7-28 13:14:30

前端下载后端文件流,文件可以下载,但是打不开,显示“文件已损坏”,postman可以..

前端下载文件流,如下是图片说明





下面是代码
//这是请求时的处理参数
xhrRequest({
            url: "http://172.30.16.40:8123/api/bomplus?SAP_BillId=0400004143",
            method: 'get',
            headers: {
                'Content-Type': 'application/json'
            },
            responseType: 'blob',
            data: {},
      })
            .then(res => {
                resolve(res);
            })
            .catch(err => {
                reject(err);
            });

//-------------------------

//这是文件流处理的代码

downloadFileNew: function (res) {
      console.log(res);
      if (res.status != 200) {
            Message.error(decodeURIComponent(res.request.statusText));
            return false;
      } else {
            let blob = new Blob(, { type: res.headers['content-type'] });
            let url = window.URL.createObjectURL(blob);
            let a = document.createElement('a');
            document.body.appendChild(a);
            let fileName = res.headers['content-disposition'].split(';').split('=');
            if (fileName == '"') {
                fileName = fileName.split('"');
            }
            a.href = url;
            a.download = fileName;
            a.click();
            window.URL.revokeObjectURL(url);
            document.body.removeChild(a);
      }
    },
图中显示文件流的下载没有问题,问题是最后文件打开的时候wps提示 无法打开文件 ,但是postman的send and Download下载的文件没有问题,网上也找了很多参考,但大部分都是说mockjs导致的,但是我这个项目里面没有mock,所以返回的request是没有问题的,其中blob格式也设置了。请各位前端能人志士尽情的提出意见,本人不胜感激!

qqq911 发表于 2022-7-29 11:00:32

比对下大小看是否下载完整

bellas 发表于 2022-7-29 14:23:36

看下大小是否完整

jingzizx 发表于 2022-7-29 16:34:39

文件对比
页: [1]
查看完整版本: 前端下载后端文件流,文件可以下载,但是打不开,显示“文件已损坏”,postman可以..