el-upload上传的文件随着其他表单项一起提交

<el-upload ref="upload"
	action=""
	multiple
	:before-remove="beforeRemove"
	:before-upload="beforeUpload"
	:on-change="onChange"
	:http-request="uploadFile"
>
	<el-button size="mini" :loading="uploading">上传文件</el-button>
	<span slot="tip" class="el-upload__tip">最大不超过20M</span>
</el-upload>

methods:

            // 删除文件
			beforeRemove(file, fileList){
				return this.$confirm(`确定移除 ${ file.name }?`).then(() => {
					this.fileList = fileList.filter(obj => obj.uid != file.uid)
					return true
				}).catch(()=>{
					return false
				})
			},
            // 文件变化
			onChange(file, fileList){
				file.status = 'success'
				this.fileList = fileList
			},
			// 自定义上传事件。如果需要在选择文件后就上传,可在此自定义
			uploadFile(file){
				// console.log(file)
			},

接口参数结构如下:

{
    "fileList": [
       <file>, //是file对象
       <file>,
       <file>
    ],
    "key_a": '',
    "key_b": ''
}

!!!注意:因为后台要求参数整体是一个formData对象,上传的文件放到一个文件数组中。

接口传参为:

        let data = {
            key_a: this.form.a, //其他表单项
            fileList: this.fileList, //上传的文件集合
        }
        let formdata = new FormData()
		for(let key in data){
			if(key == 'fileList'){
				data.fileList.forEach((obj, index) => {
                    // 注意:此处的key要传fileList[index]
					formdata.append('fileList['+index+']', obj)
				})
			}else{
				formdata.append(key, data[key])
			}
		}

调用接口成功后注意表单重置及清空上传文件列表 !

//清空表单
this.$refs.form.resetFields()
//清空文件列表
this.$refs.upload.clearFiles()

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值