项目场景:

在后台管理系统上传图片时,使用自定义的上传方法


问题描述

用element-ui + vue2.0上传多张图片,并使用自定义方法时,无法获取上传进度和上传完成后的图片列表,想要获取上传完成之后的列表

<el-upload :action="actionUrl"multipleref="uploadPic"accept="image/jpeg, image/png, image/jpg"list-type="picture-card":http-request="(e) => {uploadFile(e, row)}":on-success="(response, file, fileList) => {uploadSuccess(fileList, row)}":on-remove="(file, fileList) => {removeFileList(fileList, row)}":file-list="row.imageCos || []"><i class="el-icon-plus"></i></el-upload>
 uploadFile({file, onProgress, onSuccess, beforeUpload}, row) {uploadPic(file, progress => {onProgress(progress)}).then(res => {onSuccess({name: res.name,url: res.url,})})},uploadSuccess(fileList, row) {this.$set(row, 'imageCos', fileList)},removeFileList(fileList, row) {this.$set(row, 'imageCos', fileList)},

原因分析:

看el-upload的源码得知,在自定义的http-request的函数中,有以下几个传参

post(rawFile) {const { uid } = rawFile;const options = {headers: this.headers,withCredentials: this.withCredentials,file: rawFile,data: this.data,filename: this.name,action: this.action,onProgress: e => {this.onProgress(e, rawFile);},onSuccess: res => {this.onSuccess(res, rawFile);delete this.reqs[uid];},onError: err => {this.onError(err, rawFile);delete this.reqs[uid];}};const req = this.httpRequest(options);this.reqs[uid] = req;if (req && req.then) {req.then(options.onSuccess, options.onError);}},

headers、file、filename、data、action、onProgress、onSuccess、onError这几个参数可以获取,调用onProgress和onSuccess就可以实现上传进度和上传成功监听


解决方案:

上传时调用onPressgress回调,上传成功后调用onSuccess回调,在调用el-upload on-success属性,获取上传成功的列表。

<el-upload :action="actionUrl"multipleref="uploadPic"accept="image/jpeg, image/png, image/jpg"list-type="picture-card":http-request="(e) => {uploadFile(e, row)}":on-success="(response, file, fileList) => {uploadSuccess(fileList, row)}":on-remove="(file, fileList) => {removeFileList(fileList, row)}":file-list="row.imageCos || []"><i class="el-icon-plus"></i></el-upload>
uploadFile({file, onProgress, onSuccess, beforeUpload}, row) {uploadPic(file, progress => {onProgress(progress)}).then(res => {onSuccess({name: res.name,url: res.url,})})},uploadSuccess(fileList, row) {this.$set(row, 'imageCos', fileList)},removeFileList(fileList, row) {this.$set(row, 'imageCos', fileList)},

el-upload使用自定义上传,获取上传进度和上传成功回调相关推荐

  1. 拖拽上传获取上传文件信息,e.dataTransfer.files始终为空的解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 项目中需要做一个拖拽文件上传功能,遇到获取文件e.dataTransfer.files始终为空的情况,多次尝试,终于找到如下解 ...

  2. php截断上传,截断在文件包含和上传中的利用

    截断大概可以在以下情况适用 include(require) file_get_contents file_exists 所有url中参数可以用%00控制 0x01. 本地文件包含1.1 截断类型:p ...

  3. 实现前后台数据交互(上传/回传单个JSON数据和上传/回传JSON数组)

    一.上传单个JSON数据 所需jar文件: 创建JSON实体类: package domain;public class Data1 {private String name;private Stri ...

  4. 熹妃传获取服务器信息,熹妃传阅历怎么获取_熹妃传阅历获取攻略_手心游戏

    熹妃传阅历是用来升级技能的,所点技能越高,阅历消耗得越多.熹妃传阅历不够了怎么办?阅历怎么获取呢?接下来就由小编为大家带来熹妃传阅历获取攻略. 熹妃传阅历获取攻略 1.当差,让随从当差抄经来获取阅历. ...

  5. 后台传给前台的进度条传百分比数据

    要求:前后2端的比例是中间长度的50%可以传入一个最小值,一个数组(这个数组里面的数字可以是任意个)和一个最大值,改变最小值也可以直接传入初始的百分比 import java.text.Decimal ...

  6. HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信

    准备做一个网页版聊天界面,表情啊.图片啊.上传文件啊都应该要有,视频就算了,语音还是要的. 本文记录的是在网页上用GitHub上的Recorder进行在线录音和上传到服务器,前几天升了一下级,以后有时 ...

  7. 使用el upload标签上传文件的几种常见使用场景(前台+后台)

    前言:本篇博客主要介绍ElementUI中el upload上传控件的使用,包含前后台代码. 文章目录 一.总体代码 二.使用场景 1.添加 2.修改 3.单独上传到服务器 一.总体代码 1.前端控件 ...

  8. element upload获取上传成功的图片地址

    关于upload获取上传成功的图片地址 记录一个坑,在项目中用到了element的图片上传, 文档里的室这么写的获取图片的url handleAvatarSuccess(res, file) { th ...

  9. el upload ajax,Upload 上传 el-upload 上传配置请求头为Content-Type: multipart/form-data

    api接口处添加属性 (标红处) // 校验台账 export const checkEquiment = (data) => { return axios({ url: '/job/equip ...

最新文章

  1. nagios 监控NFS
  2. iOS 开发中使用 NSURLProtocol 拦截 HTTP 请求
  3. Stanford 研究领域
  4. 【AWSL】之Linux常用命令,学习Linux,这一篇就够了(type、echo、enable、du、ls、mkdir、touch、ln、cp、rm、mv、find、gzip、bzip、tar)
  5. 双胞胎被麻省理工全奖录取,他们成功的秘诀,跟你想的不一样……
  6. SpringBoot POM 热部署(spring-boot-devtools)
  7. 写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。
  8. linux查看usb设备名称,Linux系统下查看USB设备名及使用USB设备
  9. 【Python】UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe
  10. 基于Python的豆果网食谱数据爬取及可视化分析系统
  11. iis服务部署后根目录打不开txt
  12. openshift/origin学习记录(9)——S2I镜像定制(基于Git)
  13. 云班课python答案_云班课答案获取
  14. i7 8700+b360m+rx590黑苹果配置如何
  15. 智星云服务器之云主机使用教程简记
  16. 环保数采仪在加油站油气回收中的应用
  17. 整理了70个Python实战项目案例,教程+源码+笔记。从基础到深入
  18. 零时科技 || BEGO Token 攻击事件分析
  19. 大数据与海量数据的区别
  20. 2022年中国智慧园区市场洞察报告 附下载

热门文章

  1. LibreSSL SSL_read: error:02FFF031:system library:func(4095):
  2. 群控用于抖音有什么好处
  3. ​如何下载顺义区卫星地图高清版大图
  4. python批量识别图片中文字_Python识别图片中的文字
  5. 9月25日,AWSUnitimes免费请您吃晚餐啦!
  6. 如何在vue3+vite+ts中使用require
  7. 以管理员身份运行java_java – 在Windows中以管理员身份执行jar文件
  8. 常用代码模板(Java)
  9. pcb板子开窗_PCB做板如何处理“过孔盖油”和“过孔开窗”问题?
  10. Altium Designer--如何设置过孔(Via)盖油