前言

工作中碰到需要多图上传,在使用element-ui解决过程中碰到一些问题,在这里分享给大家。

环境:

Springboot+Vue+Element-ui

正文

这次上传使用的是Elemet-ui的uoload上传组件,组件预留的钩子回调还是比较充足的。

实现多图上传主要用到以下两个属性:

Elemet-ui是自带多图上传的,但是细心的朋友可能发现默认多图的实现可能和我们预期有些出入,有截图可以看出,实质是进行多次请求:

在上传事件触发后,多图上传的默认实现调用了三次POST请求。

题主的需求正好需要的是多图一次上传,并且还要附带一些基础表单信息。

思路就是使用H5的FormData对象模拟表单上传:

修改:auto-upload="false"属性为false,阻止组件的自动上传

new FormData()创建创建FormData对象

向FormData对象设置文件,并把FormData作为参数发送到后台(后台是java实现)

废话这么多直接上代码(仅写功能实现涉及的属性):

前台代码:

:multiple="multiple"

action="${pageContext.request.contextPath}/lookup/editEvidence/123"

list-type="picture-card"

:auto-upload="false"

:http-request="uploadFile"

ref="upload"

>

提交上传

在组件标签上设置:auto-upload="false"阻止自动上传为手动上传

修改:http-request="uploadFile"覆盖组件的默认上传方法

new Vue({

el: '#app',

data: {

multiple:true,

formDate:""

},

mounted: function () {

},

methods: {

uploadFile(file){

this.formDate.append('file', file.file);

},

subPicForm(){

this.formDate = new FormData()

this.$refs.upload.submit();

this.formDate.append('WS_CODE', "12133");

let config = {

headers: {

'Content-Type': 'multipart/form-data'

}

}

axios.post("your URL", this.formDate,config).then( res => {

console.log(res)

}).catch( res => {

console.log(res)

})

}

}

})

注意uploadFile()方法,这是我们覆盖的上传方法。我猜测在我们触发开始上传文件事件(this.$refs.upload.submit())后,组件会遍历当前文件列表的的文件,并调用上传(uploadFile())方法,在(uploadFile())方法里会传入一个file参数:

红色方框就是我们要的每个file文件。

现在思路清晰了,只要在每次调用uploadFile()方法里把遍历到的文件append()到FormData里面,然后再在上传按钮的事件里将“装载”好的FormData对象作为参数发送到服务端就好了,表单数据也是一样的append操作,下面是后台的java代码:

@ResponseBody

@RequestMapping(value = "/testPicUpload", method = RequestMethod.POST, produces = "application/json;charset=UTF-8")

public String testPicUpload(@RequestParam("file") MultipartFile[] file, String) throws Exception {

LoggerFactory.getLogger(getClass()).debug("长度"+file.length);

return "suc";

}

可以看到后台拿到了我们传上去的三张图:

至此使用element-ui一次多图上传就完成了.

初次发文,如有问题请多指教。

elementui展示多张图片_Element-ui实现合并多图上传(一次请求多张图片)相关推荐

  1. php上传多张图片为什么只显示一张,javascript,_js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次???,javascript - phpStudy...

    js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次??? js多张图片上传 也拿到多张图片的路径 在页面上展示只显示一张?只执行了一次??? self.$els.upload ...

  2. dio 上传文件报错_Vue+Element UI实现断点续传、分片上传、秒传

    作者:Pseudo 转发链接:https://segmentfault.com/a/1190000023434864 凡是要知其然知其所以然 文件上传相信很多朋友都有遇到过,那或许你也遇到过当上传大文 ...

  3. elementui 按钮 表单_前后端分离,文件上传下载(springBoot+vue+elementUI)

    1.介绍 本文主要是介绍前后端分离的上传下载,后端使用的是SpringBoot,持久层用的是mybatis-plus,前端用的Vue,UI用的elementUI,测试了一下,文本,图片,excel,都 ...

  4. 九宫格拼图android代码,Android 多图上传后将图片进行九宫格展示的实例代码

    不多说上代码 public abstract class NineGridAdapter { protected Context context; protected List list; publi ...

  5. 结合axios(formdata)+vue-cropper+element ui实现头像图片剪切上传

    萌新用vue + axios + formdata 上传文件的爬坑之路 https://blog.csdn.net/qq_41688165/article/details/80834842 结合vue ...

  6. vant weapp 多选上传图片_微信小程序结合vant weapp ui实现多图上传组件

    微信小程序多图上传 最近在写小程序的商品上传,为方便需要使用多张图片的上传的功能.因为小程序不支持数组的多张图片同时上传,然后根据自己的需求创建了一个组件希望能够帮到大家 效果图 创建一个图片上传的p ...

  7. android h5 多图上传源码,JS移动端/H5同时选择多张图片上传并使用canvas压缩图片...

    最近在做一个H5的项目,里边涉及到拍照上传图片的功能以及识别图片的功能,这里对识别图片的功能不做赘述,不属本文范畴.我在做完并上线项目后,同事跟我提了一个要求是可不可以同时选择多张图片上传,我做的时候 ...

  8. Android仿微信图片上传,可以选择多张图片,缩放预览,拍照上传等

    仿照微信,朋友圈分享图片功能 .可以进行图片的多张选择,拍照添加图片,以及进行图片的预览,预览时可以进行缩放,并且可以删除选中状态的图片 .很不错的源码,大家有需要可以下载看看 . 微信 微信 微信 ...

  9. elementui中同时上传多个文件_2019-12-19 element-ui文件上传 一次请求上传多个文件...

    最近在做项目的时候有一个需求,需要导入word文档,并且需要支持多选.element-ui 的 upload 组件支持多选文件,只需要配置参数 multiple 为 true 即可.但是这个组件默认会 ...

最新文章

  1. 重磅!GitHub 日收 7000 星, Windows 计算器项目开源即爆红!
  2. 一周内咸鱼疯传3.6W次,最终被所有大厂封杀
  3. 《网站分析师实战指南》一1.4 进入实战之路
  4. pythonpass函数_有的python内置函数怎么就一个pass?
  5. Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略
  6. 以下哪个选项不能减少用户计算机,2017年cad考试选择题「附答案」
  7. 存储过程,触发器,分页练习
  8. python echo服务器_python常用框架 echo server 的测试
  9. Magento 创建优惠卷 Create unique coupon code in Magento
  10. 重磅!Facebook 更新 PyTorch 1.1,打算跨 GPU 分割神经网络 | 技术头条
  11. concatenation java,Java:StringBufferConcatenation
  12. HeadFirst设计模式之命令模式
  13. 操作系统实验七:动态分区分配方式的模拟
  14. Scrapy项目(东莞阳光网)---利用CrawlSpider爬取贴子内容,不含图片
  15. 蓝牙 sig base uuid_蓝牙,从系统开机说起
  16. 一文让你了解生成模型相关的解码Tricks
  17. sudo进入root权限时,sudo :unable to resolve host me(此为你的Linux登录用户名): Connection timed out.
  18. windows下如何查看本机所在局域网内所有可以访问的IP
  19. 【年度总结】2022回首瞻望 | 2023大展宏“兔“
  20. 懒人修仙传ce修改方法_凡人修仙传:韩立被吐槽其貌不扬,又是“平平无奇古天乐”?...

热门文章

  1. iphoneX的适配问题
  2. spring中的context:include-filter和context:exclude-filter的区别
  3. mvc VIEW部分介绍
  4. WPF RichTextBox 控件常用方法和属性
  5. SQL Server表和字段说明的增加和更新
  6. 转:基于用户投票的排名算法系列
  7. 小干货:Linux 系统的备份恢复
  8. 10种进阶方法让你快速测试端口连通性
  9. 【Shell】特殊变量
  10. C#进行Post请求(解决url过长的问题)