JaneChelle | Blog JaneChelle | Blog

执着于理想,纯粹于当下

目录
vue中文件的上传和下载
/  

vue中文件的上传和下载

1、文件的上传

  项目中一般来说后台接收数据为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'
                  });
                }
            });
        },

2、文件的下载

对于文件下载,从后端请求回来的是一个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'
                  });
                }
            
              });
            }
        },

标题:vue中文件的上传和下载
作者:JaneChelle
地址:https://xiao.algerfan.cn/articles/2020/08/31/1598868527600.html