下載zip文件流當(dāng)遇到下載失敗的時候,就需要將后臺錯誤信息返回給用戶看逸雹,但是responseType: "blob"格式默認(rèn)轉(zhuǎn)為二進(jìn)制。所以當(dāng)下載錯誤的時候需要轉(zhuǎn)為json格式云挟,拿到code將錯誤信息返回給用戶.
不多說了梆砸,直接上代碼:
.then(result => {
console.log(result)
if (result.type == "text/html") {
const reader = new FileReader();
reader.onload = function() {
const { msg } = JSON.parse(reader.result); //此處的msg就是后端返回的msg內(nèi)容
that.$message({
message: msg,
type: "warning"
});
};
reader.readAsText(result);
} else if(result.type == "application/zip") {
const blob = result;
const reader = new FileReader();
reader.readAsDataURL(blob);
reader.onload = e => {
const a = document.createElement("a");
a.download = `商品清單.zip`;
// 后端設(shè)置的文件名稱在res.headers的 "content-disposition": "form-data; name=\"attachment\"; filename=\"20181211191944.zip\"",
a.href = e.target.result;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
};
}