element-ui 表单新建 编辑 多张图片上传与删除

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了element-ui 表单新建 编辑 多张图片上传与删除相关的知识,希望对你有一定的参考价值。

参考技术A 新建页面 和编辑页面 为同一个html

html里面多张图片上传 删除 

(主要是通过uid 来对图片数组fileList5进行更新 删除)

(fileList5里面图片对象的url 都换成oss返回的图片url 替换掉之前的blob 统一起来更好处理 submit的时候可以直接取fileList5的数据)

(扔掉elemen-ui上传图片自带的fileList5里面的url 换成可以对接接口的url)

html:

<el-form-item label="认证文件" class='not-require'>

    <el-upload  action="" :before-upload='beforeUpload' :http-request="handleSuccessList5" :on-change="handleChange5" :file-list="fileList5" :on-remove='remove5' list-type="picture" multiple :limit='3'>

  <el-button size="small" type="primary">点击上传</el-button>

  <div slot="tip" class="el-upload__tip">每张图片大小不超过1M</div>

</el-upload>

</el-form-item>

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

multiple 表示多选

:limit='3' 限制传3张

js:

//图片改变时 将图片数据push到fileList5中

handleChange5(file, fileList)

    this.fileList5.push(file)

,

此时fileList5

图片上传成功 

handleSuccessList5(file)

 var file;

 if (files.raw) file = files.raw elsefile = files.file;

//图片上传到oss

this.axios.get('/api/admin/vendor/uploadToken?path=images/').then(res =>   

var form = new FormData

form.append('name', file.name)

form.append('key', res.dir + '$filename')

form.append('policy', res.policy)

form.append('OSSAccessKeyId', res.accessid)

form.append('success_action_status', '200')

form.append('signature', res.signature)

form.append('file', file, file.name)

this.axios(

method: 'post',

url: res.host,

data: form,

).then(respond=>

var url_img = 'https:' + res.host + '/' + res.dir + file.name

//handleChange5时已经将图片信息传入到fileList5中了 有当前图片的uid和url 但是url是blob形式的

//因为是多张图片 所以fileList5数组有多个值 循环通过uid 替换掉当前图片的url 将blob换成oss形式的图片

for (var i = 0; i < this.fileList5.length; i++)

    if (this.fileList5[i].uid == file.uid)

    this.fileList5[i].url = url_img

    



)

)

,

//删除图片 点击叉叉删除

remove5(file,fileList)

//同样是通过uid 找到对应的图片对象 删除数组中的这个图片对象

//参数file里面有uid,fileList5数组里面图片对象也有uid 寻找相同的uid

for (var i = 0; i < this.fileList5.length; i++)

    if(this.fileList5[i].uid == file.uid)

    this.fileList5.splice(i,1)

   



//提交时候

this.replays.cert_file = this.fileList5

var form = new FormData

for (var i = 0; i < this.replays.cert_file.length; i++)

form.append('cert_file[]',this.replays.cert_file[i].url)



//初始化时 如果是编辑页面

//将编辑带过来的form里面图片信息赋值给fileList5

for (var i = 0; i < this.form.cert_file.length; i++)

this.fileList5.push(name:'',url:this.form.cert_file[i])

以上是关于element-ui 表单新建 编辑 多张图片上传与删除的主要内容,如果未能解决你的问题,请参考以下文章

微搭低代码实战教学,图片支持多张上传

微搭低代码实战教学,图片支持多张上传

让富文本编辑器支持复制doc中多张图片直接粘贴上传

前端图片上传思路记录

thinkPHP3.2.3文件上传类多张图片上传怎么只有第一张图片被上传

php中上传多张图片,如何解决?