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
- locvps:香港云地多线路BGP云服务器,三网直连,6折终身优惠中,稳 香港VPS[主机]
- HostKvm:洛杉矶云主机/香港云主机八折优惠,大带宽,月付5.2美元 香港VPS[主机]
- 吸血鬼崛起服务器怎么快速搭建? 全球[VPS测评]
- 因搜包耽误员工下班,苹果将支付3050万美元赔款 全球[VPS测评]
- 云服务器都是有哪些特点? 全球[VPS测评]
- 云服务器和服务器各有什么优缺点? 全球[VPS测评]
- JGKVM活动钜惠:美国cn2,香港cmi,大带宽vps,三网直连,10 美国VPS[主机]
- 磐逸云怎么样?CN2线路香港VPS月付20元 香港VPS[主机]
- 企鹅小屋:香港ntt vps,大带宽直连,1核/1G/2T流量/半年15 香港VPS[主机]
- 六一云:国内BGP高防vps套餐,1核/1G/2Mbps/香港CN2,月 香港VPS[主机]
- edgeNAT双十二:韩国VPS/美国CN2/香港CN2VPS主机,月付 韩国VPS[主机]
- 金斗云双12活动:全场8折起,美国圣何塞CN2 GIA高防VPS20元/ 美国VPS[主机]
- 麻花云双12活动:香港CN2云主机首月9元;安徽移动vps月付29元 香港VPS[主机]
- UCloud优刻得云服务器建站教程:香港云服务器购买优惠方法 香港VPS[主机]
- 阿里云香港服务器多少钱一年?阿里云香港云服务器如何购买? 香港VPS[主机]
- tmhhost:香港安畅机房三网CN2 GIA VPS,月付45起;美国 美国VPS[主机]
- CYUN:开工促销,香港云服务器/美国高防vps/香港物理服务器85折 美国VPS[主机]
- 百星数据:全场云服务器7折优惠,美国cn2/香港cn2/韩国cn2/日本 日本VPS[主机]
- 悠久云:香港云服务器低至9.9元/月;香港大带宽vps,4核4G30M仅 香港VPS[主机]
- 野草云:香港CN2VPS年付36折,137元/年;独立服务器350元月起 独立服务器[U]
- 月神科技:香港沙田机房vps优惠码首月8折,1核/1G/40G SSD/ 香港VPS[主机]
- 香港云服务器对于建站有什么便捷的地方? 香港VPS[主机]
- WHMCS 8.1如何简化注册页面 全球[VPS测评]
- Linux系统下安装Java JDK 全球[VPS测评]
- VPS成立BurjeelHoldings 全球[VPS测评]
- 言車新车|大阳VPS125混动踏板,长续航,代步通勤9980元起 全球[VPS测评]
- 如何设置指定路径跳转指定域名? 全球[VPS测评]
- 极光kvm怎么样,便宜大带宽香港cmi vps/美国gia vps低至1 美国VPS[主机]
- 咖啡主机:美国高防vps、香港vps 可享受6-7折促销 每月仅需14元 美国VPS[主机]
- 六六云:美国cera机房CN2 GIA高防/香港CN2 GIA建站/CM 美国VPS[主机]
转载请注明原文地址: http://140.238.13.167:12355/read-207556.html











