竹笋

首页 » 问答 » 问答 » vue文件导出下载时打不开空白或者
TUhjnbcbe - 2023/8/26 19:01:00
北京治白癜风哪家医院最好 https://wapyyk.39.net/bj/zhuanke/89ac7.html

文件下载或导出时打不开、空白或乱码:

可能是没有设置responseType,默认为空,值可以为blob、arrayBuffer、json、text、document、json

一般后端返回文件流,所以需要进行返回数据的处理:根据后台返回情况设不同的值

axios.get({

url:xxxxxx,

method:get,

data:{},

responseType:blob

}).then(res={

console.log(res);

});

文件格式转换过来了,下一步就是下载和重命名:

axios.get({

url:xxxxxx,

method:get,

data:{},

responseType:blob

}).then(res={

constblob=newBlob([res]);

consta=document.createElement(a);

//此处文件名称和文件后缀根据项目情况而定

a.download=文件名称.xlsx;

a.style.display=none;

a.href=URL.createObjectURL(blob);

document.body.appendChild(a);

a.click();

URL.revokeObjectURL(a.href);

document.body.removeChild(a);

});

此处需要说下newBolb()

varaBlob=newBlob(array,options);

参数

array是一个由ArrayBuffer,ArrayBufferView,Blob,DOMString等对象构成的Array,或者其他类似对象的混合体,它将会被放进Blob。DOMStrings会被编码为UTF-8。

options是一个可选的BlobPropertyBag字典,它可能会指定如下两个属性:

type,默认值为"",它代表了将会被放入到blob中的数组内容的MIME类型。

endings,默认值为"transparent",用于指定包含行结束符\n的字符串如何被写入。它是以下两个值中的一个:"native",代表行结束符会被更改为适合宿主操作系统文件系统的换行符,或者"transparent",代表会保持blob中保存的结束符不变Non-Standard

示例

varaFileParts=[aid="a"bid="b"hey!/b/a];//一个包含DOMString的数组

varoMyBlob=newBlob(aFileParts,{type:text/html});//得到blob

#VUE#

1
查看完整版本: vue文件导出下载时打不开空白或者