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测评]
- 新商家慎重-HostUp→7 美金 年 1 核 1G 1T 流量 荷兰服全球[VPS测评]
- 倒着写的人字和马字是什么成语?全球[VPS测评]
- 疯狂猜成语 图猜成语一个黑色人站在三个房子旁边还有一个红色箭头是什么成语全球[VPS测评]
- 搬瓦工 $29.88 年 2G 内存 40G SSD 1T 流量 KVM全球[VPS测评]
- 疯狂猜成语 图猜成语一个太阳三根香蕉一个月亮四根香蕉是什么成语?全球[VPS测评]
- DedeCMS 后台模块管理空白不显示列表的解决办法全球[VPS测评]
- $1 首月 4CUP 24G 内存 120G 硬盘 12TB 流量 1I全球[VPS测评]
- DesiVPS→$15 年 1GB 内存 15GB SSD 空间 2.5虚拟空间(主机)
- 纯代码实现WordPress评论显示访客UA和地理信息全球[VPS测评]
- 搬瓦工VPS补货DC9 CN2 GIA限量促销年付39.99美金套餐全球[VPS测评]
- 触摸云香港CN2GIA线路/10M带宽 ¥26起/月;美国200G高防¥美国VPS[主机]
- YYYHost 香港沙田/洛杉矶Cera高防VPS 强制三网cn2gia香港VPS[主机]
- 5个整理博客旧文章的SEO观念全球[VPS测评]
- Indonetdigital-印度尼西亚 5$月付 1C1G 国际200全球[VPS测评]
- v6Node → 首年4.5欧 德国HZ IPV6only 1核0.5G全球[VPS测评]
- Marbell-瑞士 $3.9 月 2核2G内存120G硬盘 1T流量 全球[VPS测评]
- 八成企业看好出海投资 防止“溺水”需重视这一点全球[VPS测评]
- 持续高温!长沙所有初中新生停止军训!全球[VPS测评]
- 购买香港服务器需要做哪些准备香港VPS[主机]
- CubeCloud,香港cn2,美国cn2 gia线路vps主机,2核1美国VPS[主机]
- 云群网络怎么样?香港云服务器高端弹性云2核2G2M带宽,仅588元/年香港VPS[主机]
- 私有云架设之优选拓普龙S465-24高密度存储服务器机箱评测解析全球[VPS测评]
- 极光KVM:新上香港CN2VPS,终身6折优惠,1核/1G/5Mbps,香港VPS[主机]
- 磐逸云怎么样?1核1G香港安畅CN2 VPS带宽5M年付128元香港VPS[主机]
- 翔云网络怎么样?香港云服务器优惠99/月,国内4核4G高防服务器6800香港VPS[主机]
- 傲闪云vps,1核1G低至10元起,国内高防/香港CN2/美国CN2/美美国VPS[主机]
- 咖啡主机:香港1G:15.6元/月(季付),美西1G:16.8元/月(季香港VPS[主机]
- 易凡云:国内洛阳BGP,辽宁BGP防CC,云服务器低至48.26元/月,香港VPS[主机]
- 跨境电商周报丨拼多多布局跨境电商平台;Shopify将推出新平台支持网红全球[VPS测评]
转载请注明原文地址:http://140.238.13.167:12355/read-204622.html











