vue element-ui 批量上传的坑点

通过查看上传的源码,解决了结构灵感方面的问题。该内容转载自https://juejin.im/post/5d091f3c5188253cfa3ac366 。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最开始一直以为是自己后端的多文件接受写法久多不接触写错了,
但对照前端多个文件也没有数据传过来

而最开始就成功的但文件上传:before-upload="beforeUpload" 上传是ok的
最后看请求 表单提交前upload 的file本身就是raw也就是blob结构,但这有个不符合我这边要求的问题就是
这样的上传是每个文件提交一次,我这里希望的是一次多个文件提交,同时element这里提交后就会把展示的
待上传文件消失掉,用手动上传更符合本意,

因此用改变事件处理,可能修改或什么操作套路呢 
复制代码
        beforeUpload(file){
        let fd = new FormData()
        fd.append('files', file, file.name);
        this.uploadFileRequest(`/accessory/add`, fd).then(resp => {

        }).catch(e=>{

        });
        return false
      },
      
      handleChange(file, fileList) {
        this.waitToUpFiles.push(file)
      },
      
      upFiles(){
        return new Promise((resolve,reject)=>{
          let fd = new FormData()
          let files = this.waitToUpFiles
          for(let i=0;i<files.length;i++){
            let file = files[i]
            fd.append('files', file.raw, file.name);
          }
          
          this.uploadFileRequest(`/accessory/add`, fd).then(resp => {
            resolve(resp)
          }).catch(e=>{
            reject()
          });
        })
      },
      
    //后端
    @ApiOperation(value="上传附件", notes="可以上传单个多个附件", httpMethod = "POST")
    @ApiResponses({
    	@ApiResponse(code = 200, message = "请求完成")
    })
    @PostMapping(value = "/add")
	public BaseResponse insert(@RequestParam(value="files", required=true) MultipartFile[] files) {
		BaseResponse result = accessoryService.handleUp(files);
		return result;
	}
复制代码

查看上传的源码发现结构的灵感就解决了

转载于:https://juejin.im/post/5d091f3c5188253cfa3ac366

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值