Element ui 中 upload 组件一次请求批量上传
![]() | ![]() | ![]() | ![]() |
| 【性价之王】 | 【线路之王】 | 【价格之王】 | 【配置之王】 |
| 【免费之王】 | 【香港首推】 | 【梯子之王】 | 【独服之王】 |

Element ui 是由饿了么团队推出的基于 vue 的前端库,功能非常强大,其中的 upload 组件可以轻松的实现前端通过点击或者拖拽上传文件。不过 upload 组件默认的批量上传却是逐项上传,也就是你一次批量选择 5 个文件,那么会发送 5 次请求来分别上传这 5 个文件。
那么 Element ui 中 upload 组件怎么实现一次请求批量上传呢?这就需要通过自定义 http-request 来覆盖默认的上传行为,实现自定义上传,具体代码如下:
<template> <d2-container> <el-upload class="upload-demo" ="upload" action="" :http-request="customUpload" :before-upload="beforeFileUpload" :on-preview="handlePreview" :on-remove="handleRemove" :on-success="handleSuccess" :file-list="fileList" :auto-upload="false" accept=".dbf" multiple> <el-button slot="trigger" size="small" type="primary">选取文件</el-button> <el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传到服务器</el-button> <!--div slot="tip" class="el-upload__tip">只能上传 jpg/png 文件,且不超过 500kb</div>--> </el-upload> </d2-container> </template> <script> export default { data() { return { fileList: [], fileData: new FormData() }; }, methods: { submitUpload() { this.$s.upload.submit(); fileUpload(this.fileData).then(response => { }) }, beforeFileUpload(file){ let extension=file.name.substring(file.name.lastIndexOf('.')+1); const isDbf = extension === "dbf"; const isLt10M = file.size / 1024 / 1024 < 10 if (!isDbf) { this.$message.error('上传的数据文件只能是 dbf 格式!'); } if (!isLt10M) { this.$message.error('上传的单个数据文件大小不能超过 10MB!'); } return isDbf && isLt10M; }, handleRemove(file, fileList) { }, handlePreview(file) { }, handleSuccess(response,file, fileList) { this.$message.success('上传成功') }, customUpload(file) { this.fileData.append('files[]', file.file) return false } } } //引入 axios import request from '@/plugin/axios' export function fileUpload(file) { return request({ method: 'post', url: 'http://localhost/api/import', headers: {'Content-Type':'multipart/form-data'}, data: file }) } </script>代码说明:
1.配置自定义的 http-request 函数:
:http-request="customUpload"2.在 data 中添加一项参数:fileData,类型是 FormData:
fileData: new FormData()3.实现 customUpload 方法,将上传文件信息拼接到 fileData 中。
customUpload(file) { this.fileData.append('files[]', file.file) return false }4.定义 axios 异步上传方法:
export function fileUpload(file) { return request({ method: 'post', url: 'http://localhost/api/import', headers: {'Content-Type':'multipart/form-data'}, data: file }) }5.在 submitUpload 中调用 4 中定义的上传方法:
submitUpload() { this.$s.upload.submit(); fileUpload(this.fileData).then(response => { //console.log(response) }) },猜你可能想看的VPS
- 疯狂猜成语 图猜成语一个人拿着棍子后面有一群人是什么成语?全球[VPS测评]
- 80VPS 韩国 LG 机房 KVM 上线 5 折优惠韩国VPS[主机]
- 没有用过-MoeVM→$5.99 月 50G 流量 100Mbps 宽带全球[VPS测评]
- 设置 select 某一项不可选 禁用 select 指定 option全球[VPS测评]
- CentOS7 不换内核体验类似 BBR 的单边加速全球[VPS测评]
- B2CHOST→$5 月 6 核 4GB 内存 200GB 空间 4TB虚拟空间(主机)
- 优惠 iON→Krypt 旗下品牌 5 折优惠来袭 全部为 CN2 GT全球[VPS测评]
- mysql 替换字段指定内容的方法全球[VPS测评]
- 促销 178 元 年 2 核 CPU 2G 内存 30G 硬盘 4Mbp日本VPS[主机]
- 疯狂猜成语 图猜成语一口水井里面坐着一只青蛙是什么成语?全球[VPS测评]
- CoalCloud→368 元 年 384MB 内存 8GB SSD 空虚拟空间(主机)
- pacificrack→洛杉矶 KVM 系列 VPS 低至$6.52 年全球[VPS测评]
- 如何通过巧用WordPress Trackbacks和Pingbacks全球[VPS测评]
- AlexHost摩尔多瓦抗投诉 VPS 云服务器 1.5G内存/不限流/全球[VPS测评]
- 咸鱼科技(Saltyfish)美国费里蒙 圣何塞CN2 GIA → 促销美国VPS[主机]
- wikihost微基主机服务,香港稳定虚拟主机8折,3.73元/月起,C香港VPS[主机]
- 漂亮的Css3响应侧边栏菜单,动画风格侧边栏导航菜单样式全球[VPS测评]
- 什么是云服务器?云服务器怎么登陆?全球[VPS测评]
- 狗云DogYun,香港cn2云服务器/优惠码/流量包,按小时计费云服务器香港VPS[主机]
- 春天的风最容易温暖心灵,适合朋友圈和抖音的12条文案全球[VPS测评]
- 香港云服务器性价比高:香港云服务器哪家便宜香港VPS[主机]
- 品光网络怎么样?香港美国服务器/云/高防,开年采购3.5折起美国VPS[主机]
- Linux chown -R 指令介绍与使用全球[VPS测评]
- 56云服务器怎么样?56云服务器价格和优势是什么?全球[VPS测评]
- 云米科技:香港/美国/日本等海外免备案vps云服务器,最低13元/月日本VPS[主机]
- 极光kvm怎么样?香港大带宽VPS促销1核1G内存19元/月起,5G防御香港VPS[主机]
- 亚马逊卖家与广告流量之间的博弈才刚刚开始?品牌卖家如何冲破广告之困...全球[VPS测评]
- 外贸无界烟台市有多少跨境电商?烟台跨境电商开发平台,烟台跨境电商选品全球[VPS测评]
- 云米科技:香港安畅/美国Cera/日本CN2机房,海外云服务器最低11元日本VPS[主机]
- 跨境电商有哪些平台?十大跨境电商平台!全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-207556.html











