关于element多文件上传

312 阅读1分钟

element多文件上传我遇到的有两种情况:

1、可以预览上传文件,并且可以删除新增

这种情况按照element el-upload给出的钩子按需添加就可以了,因为这种一般会有一个“确认上传”按钮,在点击按钮的时候调用接口就可以了。

2、不预览文件,直接上传

这种情况下我遇到了一个问题,在引入el-upload给出的钩子时,会多次触发钩子,如果在钩子里面直接调用接口的话就会出现重复调用接口的情况,一直没找到合适的方法所以结合实际需求和el-upload给出的钩子,使用了一个笨办法:

<el-upload "action="/" :on-change = 'handlePreview' :http-request='uploadfun' :show-file-list="false" :multiple = 'true'> <el-button size="mini">添加</el-button> </el-upload>

首先是使用:on-change ,将所有选中的文件给filelist赋值(:file-list="fileList"绑定的fileList没拿到值,不知道为啥),

handlePreview( file, fileList) { this.fileList.push(file) this.fileList = [...new Set(this.fileList)] },

然后监听filelist的状态,调用上传接口。

fileList(val){ if(val.length>0){ this.upload() } }

:http-request方法是自定义方法,可以覆盖掉多文件选择多次触发钩子,从而多次给filelist赋值的情况。

uploadfun(){ // console.log(this.fileList) },

upload()上传接口调用成功之后清空fileList。