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
- 大盘机 $2.99 月 2 核 CPU 512M 内存 250G 硬盘 全球[VPS测评]
- raksmart→“开年大促” 超大带宽 不限流量“独立服务器” 美国 独立服务器[U]
- 疯狂猜成语 图猜成语一个黑衣人堵着耳朵拎着一口金色的钟是什么成语?全球[VPS测评]
- VirMach - Merry Christmas!圣诞促销年付$15 全球[VPS测评]
- 特价服务器 80host 日本 CN2 线路独立服务器测试数据独立服务器[U]
- BudgetVM→$12.5 月 1 核独享 2GB 内存 50GB S虚拟空间(主机)
- vh.net - 主打日本高端机房 E3-1270 16GB 800G 日本VPS[主机]
- 阿里云 Hi 拼团-国内云服务器 99 元每年起 香港 T5 三年 71香港VPS[主机]
- SaltyfishTech→$30 季 1GB 内存 20GB SSD 虚拟空间(主机)
- 稳定 搬瓦工 DC6 机房 CN2 GIA 线路 512M 套餐 年付 全球[VPS测评]
- 百度搜索将打击网站搜索内容需获取权限才能查看的情况全球[VPS测评]
- WordPress网站搜索结果只有一篇文章代码实现自动跳转到该文章全球[VPS测评]
- 博客写手怎么突破更新文章的困境全球[VPS测评]
- 知更鸟Begin WordPress主题美化修改教程全球[VPS测评]
- GreenCloudVPS → 美国欧洲存储型 → 2G 500G 美国VPS[主机]
- 修罗香港IPLC → 1核 256M内存 单向50GB 15mbps →香港VPS[主机]
- 曾经最大跨境电商平台团队收缩,只剩20人丨GoingGlobal周报全球[VPS测评]
- 酷锐云双十一活动:美国vps、香港vps云主机,2核4G4M,50元/首美国VPS[主机]
- uuuvps:香港VPS低至97元/年,CN2+bgp网络,香港机房VP香港VPS[主机]
- 野草云服务器怎么样?香港CN2+BGP带宽30M月付19元香港VPS[主机]
- 恒星云:香港沙田CN2VPS低至9.9元/起_国内BGP云服务器4核4G香港VPS[主机]
- 老六云怎么样?香港cn2vps月付23元香港NTT月付9.9元香港VPS[主机]
- 彗星云:香港特价vps1核/1G/无限流量/月付仅9元,年付仅75元;国香港VPS[主机]
- 日主机,便宜美国CN2高防VPS¥19/月起,1Gbps带宽,香港多IP站群服务器[IP]
- 跨境电商洋码头生死攸关:买手流失资金被冻结保全全球[VPS测评]
- CMCUCT:2核2GB/20GB香港ntt线路vps 6TB流量/1G香港VPS[主机]
- 印象云vps,香港安畅gia低至22元起,1核1G内存,小带宽无限流量,香港VPS[主机]
- 香港云服务器对于建站有什么便捷的地方?香港VPS[主机]
- 快速云:科普云服务器服务器的概念和作用2022-08-2313:26来源全球[VPS测评]
- TabbyCloud:香港BGP云服务器,1核/1GB/20GB空间/2虚拟空间(主机)
转载请注明原文地址:http://140.238.13.167:12355/read-219484.html











