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测评]
- Launchvps→费城 KVM 月付 2.9 美元起 500M 带宽 全球[VPS测评]
- 促销 DediPath→ 不限流量 VPS 全场 6 折优惠 Hybri全球[VPS测评]
- KT 旗下 iON 品牌上线路新加坡机房 预够进行中 可选 CN2 2G全球[VPS测评]
- layer 弹窗关闭时刷新父页面的两种方法全球[VPS测评]
- HoRain 日本 新加坡 G 口 VPS 上线,AWS 轻量实例,1 日本VPS[主机]
- 带宽小-Xiuluohost→香港 VPS 1 核 256M 内存 11香港VPS[主机]
- mysqldump: Got error: 1044: ***when 全球[VPS测评]
- SSDNodes→新加坡 西雅图 洛杉矶 达拉斯 纽约 德国 加拿大等 全球[VPS测评]
- 更新WordPress网站PHP7.2新版本的注意事项全球[VPS测评]
- 不要随意安装来路不明的破解WordPress主题全球[VPS测评]
- WordPress插件:有字库插件美化文章标题和内容全球[VPS测评]
- GigsGigsCloud 新加坡K1+ MINI套餐 PCCW线路 九全球[VPS测评]
- RangCloud 双旦特惠 1G内存10G硬盘1m小带宽香港vps首单香港VPS[主机]
- HostBreak → 12.5$ 月 1C1G20G硬盘 巴基斯坦 4全球[VPS测评]
- Serverum-俄罗斯圣彼得堡 拉脱维亚 5$ 月 1核1G10GB内全球[VPS测评]
- 快车道 新用户-季付65折-半年付6折优惠 圣何塞-德国GIA全球[VPS测评]
- HKServerSolution 美西经济型 99元月付 GIA全球[VPS测评]
- GigsGigsCloud 循环三五折 三网最高级线路 独立服务独立服务器[U]
- ERP库存管理系统HTML5模板 - DreamsPOS全球[VPS测评]
- 企鹅小屋怎么样?深港IPLC专线销售 500M大带宽/2核1G内存/55全球[VPS测评]
- 六一云:香港CN2/洛杉矶高防/CDN,“返利+折扣”双优惠,折上折送实香港VPS[主机]
- 恒创科技怎么样?香港美国云服务器/独服/高防全场2.5折起美国VPS[主机]
- 全球云lovps,香港CN2线路vps 新品七折月付49元香港VPS[主机]
- 新华全媒+丨第六届全球跨境电商大会:跨境电商加快拓宽中国贸易新通道全球[VPS测评]
- 无忧云怎么样?大连BGP德阳100G高防香港CN2VPS云服务器香港VPS[主机]
- SugarHosts糖果主机:虚拟主机5折(有独立IP);香港/美国cn独立服务器[U]
- 恒星云:香港沙田CN2VPS低至9.9元/起_国内BGP云服务器4核4G香港VPS[主机]
- MoonVM,香港HKT家宽VPS服务器,动态IP一键切换,1G带宽任意香港VPS[主机]
- 酷锐云元旦钜惠:大量香港/美国vps优惠码,香港1核2G云主机仅20元/美国VPS[主机]
转载请注明原文地址:http://140.238.13.167:12355/read-201714.html











