项目中一般来说后台接收数据为JSON字符串,接收文件为FormData表单。当上传图片,文档,工作表等时,就需要给后台传递FormData的类型。headers设置'Content-Type':'multipart/form-data',然后使用append方法,把键值依次添加进去。
uploadTemplateA(event){
let headers = { 'Content-Type': 'multipart/form-data' };
let formData = new FormData();
formData.append("file", event.target.files[0]);
formData.append("taskId", this.taskId);
uploadAgencytemplate(formData,headers).then((res) => {
console.log(res);
if(res.code == 200){
this.$message({
message: res.message,
type: 'success'
});
}else {
this.$message({
message: res.message,
type: 'warning'
});
}
});
},
对于文件下载,从后端请求回来的是一个url地址,那么当请求成功的时候,就把url赋值给a标签的href,然后再触发他的click事件。
<a href="" ref="target"></a>
//下载模板
downloadTaskTemplate(){
if(this.form.dataTemplateStatus1 !== 10){
requestTaskTemplate({ taskId:this.taskId,type:this.type1 }).then(res => {
if(res.code === 200){
let link = res.result.fileUrl;
let target = this.$refs.target;
target.setAttribute('href',link);
target.click();
}else {
this.$message({
message: res.message,
type: 'warning'
});
}
});
}
},