在swagger-ui中没有问题,但是自己导出的文件是中文乱码。
需要加上responseType: "blob",注意位置
axios({
method: "post",
url: url,
params: params,
responseType: "blob"
})
.then(res => {
resolve(res.data);
})
.catch(err => {
reject(err.data);
});
});
input上传file内容为空问题,将file添加到formData,后端下载将直接返回在res.data中,直接下载
<input
type="file"
name="avatar"
accept="xsl"
style="display: none"
@change="changeImage($event)"
ref="avatarInput"
/>
changeImage(event) {
this.importLoad = true;
let formData = new FormData();
const file = event.target.files[0];
let suffixName = file.name.substring(file.name.lastIndexOf(".") + 1); // 得到文件后缀名 */
if (suffixName !== "xls") {
this.$Notice.warning({
title: '提示',
desc: '上传文件只能是xls格式'
});
this.importLoad = false;
return;
}
formData.append("file", file);
formData.append("pkAccounts", this.pkAccounts);
this.$refs.avatarInput.value = null; // 移除文件
axios({
method: "post",
url: "/PE0801/importExcel",
data: formData,
responseType: "blob"
})
.then((res) => {
this.importLoad = false;
if (res.status == 200) {
this._makeA(res.data, "xls");
} else {
this.$Notice.error({
title: "上传失败",
desc: res.message
});
}
})
.catch((err) => {
console.log(err);
});
},