el-upload使用自定义上传,获取上传进度和上传成功回调
项目场景:
在后台管理系统上传图片时,使用自定义的上传方法
问题描述
用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使用自定义上传,获取上传进度和上传成功回调相关推荐
- 拖拽上传获取上传文件信息,e.dataTransfer.files始终为空的解决方案
2019独角兽企业重金招聘Python工程师标准>>> 项目中需要做一个拖拽文件上传功能,遇到获取文件e.dataTransfer.files始终为空的情况,多次尝试,终于找到如下解 ...
- php截断上传,截断在文件包含和上传中的利用
截断大概可以在以下情况适用 include(require) file_get_contents file_exists 所有url中参数可以用%00控制 0x01. 本地文件包含1.1 截断类型:p ...
- 实现前后台数据交互(上传/回传单个JSON数据和上传/回传JSON数组)
一.上传单个JSON数据 所需jar文件: 创建JSON实体类: package domain;public class Data1 {private String name;private Stri ...
- 熹妃传获取服务器信息,熹妃传阅历怎么获取_熹妃传阅历获取攻略_手心游戏
熹妃传阅历是用来升级技能的,所点技能越高,阅历消耗得越多.熹妃传阅历不够了怎么办?阅历怎么获取呢?接下来就由小编为大家带来熹妃传阅历获取攻略. 熹妃传阅历获取攻略 1.当差,让随从当差抄经来获取阅历. ...
- 后台传给前台的进度条传百分比数据
要求:前后2端的比例是中间长度的50%可以传入一个最小值,一个数组(这个数组里面的数字可以是任意个)和一个最大值,改变最小值也可以直接传入初始的百分比 import java.text.Decimal ...
- HTML5网页录音和上传到服务器,支持PC、Android,支持IOS微信
准备做一个网页版聊天界面,表情啊.图片啊.上传文件啊都应该要有,视频就算了,语音还是要的. 本文记录的是在网页上用GitHub上的Recorder进行在线录音和上传到服务器,前几天升了一下级,以后有时 ...
- 使用el upload标签上传文件的几种常见使用场景(前台+后台)
前言:本篇博客主要介绍ElementUI中el upload上传控件的使用,包含前后台代码. 文章目录 一.总体代码 二.使用场景 1.添加 2.修改 3.单独上传到服务器 一.总体代码 1.前端控件 ...
- element upload获取上传成功的图片地址
关于upload获取上传成功的图片地址 记录一个坑,在项目中用到了element的图片上传, 文档里的室这么写的获取图片的url handleAvatarSuccess(res, file) { th ...
- el upload ajax,Upload 上传 el-upload 上传配置请求头为Content-Type: multipart/form-data
api接口处添加属性 (标红处) // 校验台账 export const checkEquiment = (data) => { return axios({ url: '/job/equip ...
最新文章
- nagios 监控NFS
- iOS 开发中使用 NSURLProtocol 拦截 HTTP 请求
- Stanford 研究领域
- 【AWSL】之Linux常用命令,学习Linux,这一篇就够了(type、echo、enable、du、ls、mkdir、touch、ln、cp、rm、mv、find、gzip、bzip、tar)
- 双胞胎被麻省理工全奖录取,他们成功的秘诀,跟你想的不一样……
- SpringBoot POM 热部署(spring-boot-devtools)
- 写一个在一个字符串(n)中寻找一个子串(m)第一个位置的函数。
- linux查看usb设备名称,Linux系统下查看USB设备名及使用USB设备
- 【Python】UnicodeDecodeError: 'gbk' codec can't decode byte 0xfe
- 基于Python的豆果网食谱数据爬取及可视化分析系统
- iis服务部署后根目录打不开txt
- openshift/origin学习记录(9)——S2I镜像定制(基于Git)
- 云班课python答案_云班课答案获取
- i7 8700+b360m+rx590黑苹果配置如何
- 智星云服务器之云主机使用教程简记
- 环保数采仪在加油站油气回收中的应用
- 整理了70个Python实战项目案例,教程+源码+笔记。从基础到深入
- 零时科技 || BEGO Token 攻击事件分析
- 大数据与海量数据的区别
- 2022年中国智慧园区市场洞察报告 附下载
热门文章
- LibreSSL SSL_read: error:02FFF031:system library:func(4095):
- 群控用于抖音有什么好处
- ​如何下载顺义区卫星地图高清版大图
- python批量识别图片中文字_Python识别图片中的文字
- 9月25日,AWSUnitimes免费请您吃晚餐啦!
- 如何在vue3+vite+ts中使用require
- 以管理员身份运行java_java – 在Windows中以管理员身份执行jar文件
- 常用代码模板(Java)
- pcb板子开窗_PCB做板如何处理“过孔盖油”和“过孔开窗”问题?
- Altium Designer--如何设置过孔(Via)盖油