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 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
2021-03-25 最长公共子序列——动态规划
2021-03-25 AcWing练习——把数字翻译成字符串(动态规划)