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
- 精美的宠物医院网站WordPress主题 - Valkuta 全球[VPS测评]
- 2022年亚马逊Prime会员日将于7月12日和13日举行,覆盖24个站 全球[VPS测评]
- BBR对比BBR2BBRPLUSBBR2CAKE锐速哪个效果好 全球[VPS测评]
- 拼多多入局跨境电商平台,首站美国;奈雪的茶在上海建第二总部;pidan“ 美国VPS[主机]
- 快速云:科普云服务器服务器的概念和作用2022-08-2313:26来源 全球[VPS测评]
- 腾讯云香港轻量应用服务器 优惠活动最低月付仅24元 香港VPS[主机]
- 咖啡主机怎么样?美国洛杉矶高防vps,cn2直连,香港沙田vps 美国VPS[主机]
- LOCVPS,全新香港大浦CN2 VPS 2核4G内存3M仅54/月 香港VPS[主机]
- HostKVM香港云地VPS,2核4G内存折后$8.4/月,30M大带宽 香港VPS[主机]
- dogyun:2020国庆促销,7.1折优惠,多线路vps-香港CN2、 日本VPS[主机]
- 亿速云“双11”上云狂欢大促 高防云服务器、裸金属服务器优惠套餐 全球[VPS测评]
- 硅云:香港云服务器2核2G5M促销1999元/3年起,香港虚拟主机1G空 虚拟空间(主机)
- 香港服务器租用哪里有?便宜的香港服务器租用 香港VPS[主机]
- UCloud:全球31个机房全球云服务器大促,香港2核4G低至485元/ 日本VPS[主机]
- 酷锐云:春节特惠,4核4G80G10M仅60元/月起,香港/美国云服务器 美国VPS[主机]
- 快云科技:2核2G3M云服务器14.98元/月;香港vps全场7.5折, 香港VPS[主机]
- RangCloud:新购NAT VPS,256/512/1G/2G主机季 香港VPS[主机]
- 华纳云新春活动:香港CN2云服务器4核4G5M仅3476元/3年;美国云 美国VPS[主机]
- 百星数据:全场云服务器7折优惠,美国cn2/香港cn2/韩国cn2/日本 日本VPS[主机]
- 阳帝云:3月优惠活动,香港GIA/香港TG/洛杉矶200G硬防vps,首 香港VPS[主机]
- 樊云:香港cn2+美国cn2,36元/月起,9折优惠促销;云服务器+独立 独立服务器[U]
- 桔子数据:1核/1G/50Mbps/洛杉矶CUVIP线路/首月14元;香 香港VPS[主机]
- dogyun:香港/韩国/美国cn2定制VPS,静态云服务器终身8折,低 韩国VPS[主机]
- jquery css3实现的进度条动画特效,带加载进度条百分比动态效果。 全球[VPS测评]
- 很简单的图片不规则布局样式,纯css样式实现的图片瀑布流布局 全球[VPS测评]
- 什么是IconFont ?iconfont 的使用和解析 全球[VPS测评]
- 拼多多正筹建跨境电商平台:密集挖角SHEIN员工,零佣金招商入驻 全球[VPS测评]
- 瓜云互联怎么样?香港/美国洛杉矶CN2高防vps 50G月付34元 美国VPS[主机]
- 印象云怎么样?85折香港安畅CN2vps带宽3M月付23元 香港VPS[主机]
- earidc怎么样?香港三网cn2vps带宽1M月付29元 香港VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-204622.html











