element-ui上传多个文件,只请求一次相应处理
如果不做修改,就会变成上传了几个文件就会发送几次请求,想坐到的就是,多文件上传只发送一次请求
有些参数和方法都是自己项目里面使用的(element中有参数说明),不用管,只管最关键的:auto-upload=“false”=>:auto-upload="true"和:file-list的一个数组
<el-upload
v-if="pageLeftBtn"
ref="uploadBtn"
:multiple="true"
:action="uploadURL"
:name="fileKey"
:with-credentials="true"
:show-file-list="false"
:on-success="handleUploadSuccess"
:on-error="handleUploadError"
:on-preview="handlePreview"
:before-upload="handleBeforeUpload"
:auto-upload="false"
:file-list="uploadedList"
:disabled="disabled || isLoading"
:limit="limit"
>
<el-button
class="btn"
type="primary"
:loading="isLoading"
:disabled="disabled"
icon="el-icon-upload"
@click="clearUploadList"
>请选择上传文件</el-button>
</el-upload>
<el-button class="btn" type="primary" @click="handleUploadFileList">确定上传</el-button>
handleUploadFileList () {
let formData = new FormData()
this.uploadedList.forEach((_) => {
formData.append('file', _.raw)
})
console.log(formData)
// TO DO
// 如果调用submit()方法,又会是多文件分开上传
// this.$refs.uploadBtn.submit()
// ... 接下来直接发送请求就行了
// 列如
axios
// TO DO
// 需要什么参数就传递什么参数
.post(`//172.0.0.1:8080/upload?test=${this.test}`,formData,
{ headers: { 'Content-Type': 'multipart/form-data' } }
)
.then((r) => {
console.log(r)
})
.catch((e) => {
console.log(e)
})
// 期间需要做判断,比如说大小控制等加上判断即可
},