Vue通过原始文件选择框实现文件上传(支持批量)

页面效果图:

代码模板:

复制代码
 1 <v-block>
 2   <input
 3     type="file"
 4     name="file"
 5     class="el-upload__input"
 6     @change="selectFileEvent(fileNameList)"
 7     multiple
 8     ref="file2"
 9   />
10   <el-form>
11     <el-form-item label="选择文件">
12       <el-input
13         type="text"
14         v-model="fileNameList"
15         style="width: 50%"
16         disabled
17       ></el-input>
18       <el-button @click="fileSelect">...</el-button>
19     </el-form-item>
20   </el-form>
21 </v-block>
复制代码

一、给选择文件按钮绑定单击事件——去触发type="file"的input标签

1 // 加号选择文件
2 fileSelect(index) {
3    this.$refs.file2.click(index);
4 }

二、给文件选择标签绑定change事件

复制代码
 1 // 加号选定文件
 2 selectFileEvent(fileNameList) {
 3   // 清空文件名列表和文件
 4   var fileNameList = "";
 5   let formDate = this.$refs.file2.files;
 6   for (let i = 0; i < formDate.length; i++) {
 7     if (formDate[i].name != null || formDate[i].name != "") {
 8       if (formDate[i].name.length > 20) {
 9         let name = formDate[i].name.split(".");
10         // console.log(name,'name')
11         fileNameList =
12           fileNameList +
13           `${name[0].substr(0, 16)}... .${name[name.length - 1]}` +
14           ";";
15       } else {
16         fileNameList = fileNameList + formDate[i].name + ";";
17       }
18     }
19   }
20   this.fileNameList = fileNameList;
21   this.fileList = formDate;
22 },
复制代码

三、支持批量属性

multiple

四、后端接口定义

1 public ResponseEntity<?> fileUpload(@RequestPart(required = false, value = "files") MultipartFile[] files) {
2     return ResponseEntity.ok(true);
3 }

 

posted @   没有你哪有我  阅读(807)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
历史上的今天:
2021-03-25 最长公共子序列——动态规划
2021-03-25 AcWing练习——把数字翻译成字符串(动态规划)
点击右上角即可分享
微信分享提示