vue element-ui 批量上传的坑点

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

而最开始就成功的但文件上传: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;
	}

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