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
- 阳帝云:香港CN2 GIA云服务器,高配CPU/八折促销/稳定/可跑满 香港VPS[主机]
- 加拿大以“国安”为由禁止华为、中兴参与5G建设 全球[VPS测评]
- 创意加载进度HTML动画特效,SVG+CSS3实现的动画死神来了load 全球[VPS测评]
- 人们为啥不爱吃海底捞了?海底捞上半年亏损达2.97亿 网友神评扎心 全球[VPS测评]
- 云服务器都是有哪些特点? 全球[VPS测评]
- 跨境贸易和跨境电商的三大区别简单分析 全球[VPS测评]
- 亚马逊卖家与广告流量之间的博弈才刚刚开始?品牌卖家如何冲破广告之困... 全球[VPS测评]
- 云计算竞争日趋白热化云计算行业市场前景分析 全球[VPS测评]
- 谷歌浏览器网址如何显示http,www,Chrome谷歌浏览器恢复地址栏 全球[VPS测评]
- Linux chown -R 指令介绍与使用 全球[VPS测评]
- 瓜云互联怎么样?香港/美国洛杉矶CN2高防vps 50G月付34元 美国VPS[主机]
- 众创逸云:1核2G云服务器,不限流量vps/5Mbps/KVM/香港CN 香港VPS[主机]
- 宝塔面板在香港服务器安装启动不了nginx怎么办? 香港VPS[主机]
- GreenCloudVPS:5折、6折优惠,日本、新加坡、香港等KVM 日本VPS[主机]
- 美云香港云服务器怎么样?1核1G香港云服务器价格99元/月 香港VPS[主机]
- ucloud香港服务器怎么样?听听这些网友们怎么说的 香港VPS[主机]
- 互盟云元旦活动:云服务器1核2G首月仅18元,香港虚拟主机年付仅1折 香港VPS[主机]
- pittqiao:彰化HiNet/台北CN2/东京NTT/上海茂名联通C 全球[VPS测评]
- 水墨云:特惠香港、日本、韩国、洛杉矶小内存vps;IPLC专线/海外CN 日本VPS[主机]
- 易梦云:香港/美国vps优惠活动,2核1G3M云主机仅16元/月 美国VPS[主机]
- 易探云:香港免备案云服务器年付6.8折,2核4G5M+10G数据盘仅79 香港VPS[主机]
- 加拿大以“国安”为由禁止华为、中兴参与5G建设 全球[VPS测评]
- 向日葵-漏洞科普:海外云服务器三种漏洞修复方法快收藏起来! 全球[VPS测评]
- 关键路径、资金情况、政策关键数据中心的可持续发展路径在哪里? 全球[VPS测评]
- VPS成立BurjeelHoldings 全球[VPS测评]
- 又一跨境电商产业园落户!中山石岐签约引进16个项目 全球[VPS测评]
- “休闲养蜂”风靡海外跨境电商追逐垂直风口 全球[VPS测评]
- tudcloud,香港沙田大带宽vps特惠7折,CN2+BGP直连,10 香港VPS[主机]
- EdgeNAT,香港CN2+BGP vps 带宽5M 月付72元 香港VPS[主机]
- 香港vps免费:青云互联,1核1G/50G硬盘/500GB流量/2M带宽 香港VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-216472.html











