vue el-upload 以formData传递二进制文件

DOM

<el-upload
          class="upload-demo"
          drag
          ref="upload"
          multiple
          :fileList="fileList"
          :auto-upload="false"
          :on-change="handleChange"
          :on-remove="handleRemove"
          action=""
        >
          <i class="el-icon-upload"></i>
          <div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
        </el-upload>

JS

<script>
export default {
data() {
      return {
        form:{},
        fileList: [],
      };
    },
}
methods: {
	handleChange(file, fileList) {
        this.fileList = fileList;
        this.form.importParams = this.fileList;
      },
      handleRemove(file, fileList) {
        this.fileList = fileList;
        this.form.importParams = this.fileList;
      },
      // 保存前处理数据
      addBefore() {
        let format = new FormData();
        // 这里取了一条数据,多个文件需多次添加
        format.append("file", this.form.importParams[0].raw);
        format.append("protocol", this.form.protocol);
        format.append("priority", this.form.priority);
        format.append("registType", this.form.registType);
        format.append("esbUser", this.form.esbUser);
        this.form = format;

        console.log(this.form, "新增的数据");
      },
}
</script>

接口定义:

踩坑点一定要以data传递,不能使用params,否则formData不生效

import request from '@/router/axios';
export const add = (data) => {
    return request({
		url: '/xxx/xxx',
		method: 'post',
        data, // 正确传递
        // params: data, // 错误传递,不可用
        headers: { 'Content-Type': 'application/x-www-form-urlencoded'}
	});
  }
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值