ElementUI上传文件和额外参数

ElementUI 上传文件和额外参数

需求是:
现有一后端接口,POST类型,参数为

@RequestParam("file") MultipartFile file,int courseId

前端需要传文件和额外的参数,后端没给任何指导,瞎琢磨了半天才搞出来。
利用elementUI封装好的el-upload组件进行上传操作,先上html代码:

        <el-upload
          :multiple="false"
          :show-file-list="false"
          :http-request="uploadExcel"
          action="string"
        >
          <el-button size="small" type="primary">上传文件</el-button>

注意这里的

:http-request

这是elementUI封装好的,用来覆盖默认的上传行为,可以自定义上传的实现。我这里写了一个自己的函数uploadExcel,内容如下:

    uploadExcel(param) {
      let fd = new FormData();
      fd.append('file', param.file); // 传文件
      fd.append('courseId', this.mycourseId); // 传courseId
      this.$axios.post('/CourseDetail/addStudentByExcel', fd).then((resp) => {
        const { data } = resp;
        console.log(data)
        if (data.success === false) {
          this.$message({
            message: data.message,
            type: 'warning'
          });
        } else {
          this.$message({
            message: data.message,
            type: 'sucess'
          });
        }
      });
    },

注意,要取得此处上传的文件,必须使用param这个参数名,然后通过param.file拿到上传的文件。
这之后就很简单了,因为后端要的是MultipartFile,所以创建一个FormData对象,在里面放入文件和额外的参数,然后通过axio的post方法传给后端就可以了。
参考自:https://www.cnblogs.com/smile-fanyin/p/12495012.html
https://blog.csdn.net/m0_37835906/article/details/88915959

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值