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。