使用FormData实现上传多个文件


Posted in Javascript onDecember 04, 2018

本文实例为大家分享了FormData上传多个文件的具体代码,供大家参考,具体内容如下

由于项目中使用到,特此写个Demo

html代码:

<html>
<head>
 <title>Title</title>
 <script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<form enctype="multipart/form-data" id="form_example">
 <input type="file" id="files" multiple/><br/><br/>
 <input type="submit" value="提交"/>
</form>

<div id='file-list-display'></div>
</body>
</html>

js代码:

<script type="text/javascript">
 $(document).ready(function () {
  var fileList = [];
  var fileCatcher = document.getElementById('form_example');
  var files = document.getElementById("files"), renderFileList;
  var fileListDisplay = document.getElementById('file-list-display'), sendFile;

  fileCatcher.addEventListener("submit", function (event) {
   event.preventDefault();
   //上传文件
   sendFile();
  });

  files.addEventListener("change", function (event) {
   for (var i = 0; i < files.files.length; i++) {
    fileList.push(files.files[i]);
   }
   renderFileList();
  });

  renderFileList = function () {
   fileListDisplay.innerHTML = '';
   fileList.forEach(function (file, index) {
    var fileDisplayEl = document.createElement("p");
    fileDisplayEl.innerHTML = (index + 1) + ":" + file.name;
    fileListDisplay.appendChild(fileDisplayEl);
   })
  };

  sendFile = function () {
   var formData = new FormData();
   var request = new XMLHttpRequest();
   //循环添加到formData中
   fileList.forEach(function (file) {
    formData.append('files', file, file.name);
   })
   request.open("POST", "/test/upload.do");
   request.send(formData);
  }
 })
</script>

后端使用Spring MVC接收前端文件

配置multipart解析器:

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
   p:defaultEncoding="utf-8"/>

Controller:

@RequestMapping("/upload.do")
@ResponseBody
public Object upload(@RequestParam MultipartFile[] files) {
  System.out.println(files.length);
  return "ok";
}

前端页面:

使用FormData实现上传多个文件

请求:

使用FormData实现上传多个文件

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery任意位置浮动固定层插件用法实例
May 29 Javascript
JavaScript获取URL汇总
Jun 08 Javascript
详解JavaScript基于面向对象之创建对象(2)
Dec 10 Javascript
js创建对象的方法汇总
Jan 07 Javascript
浏览器复制插件zeroclipboard使用指南
Mar 26 Javascript
Bootstrap警告框(Alert)插件使用方法
Mar 21 Javascript
Angular.js中定时器循环的3种方法总结
Apr 27 Javascript
微信小程序封装http访问网络库实例代码
May 24 Javascript
详解layui弹窗父子窗口之间传参数的方法
Jan 16 Javascript
使用validate.js实现表单数据提交前的验证方法
Sep 04 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 Javascript
世界上最短的数字判断js代码
Sep 09 Javascript
vue自定义指令的创建和使用方法实例分析
Dec 04 #Javascript
用vuex写了一个购物车H5页面的示例代码
Dec 04 #Javascript
vue实现的双向数据绑定操作示例
Dec 04 #Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
Dec 04 #jQuery
jQuery利用FormData上传文件实现批量上传
Dec 04 #jQuery
vue实现的组件兄弟间通信功能示例
Dec 04 #Javascript
微信小程序模板template简单用法示例
Dec 04 #Javascript
You might like
Apache启动报错No space left on device: AH00023该怎么解决
2015/10/16 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php图片合成方法(多张图片合成一张)
2017/11/25 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
Js获取事件对象代码
2010/08/05 Javascript
jquery 按钮状态效果 正常、移上、按下
2013/08/12 Javascript
jquery form 隐藏的input 选择
2014/04/29 Javascript
jQuery针对各类元素操作基础教程
2014/08/29 Javascript
javascript实现状态栏文字首尾相接循环滚动的方法
2015/07/22 Javascript
javascript动态获取登录时间和在线时长
2016/02/25 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
VUE开发一个图片轮播的组件示例代码
2017/03/06 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
keep-alive保持组件状态的方法
2020/12/02 Javascript
[49:28]VP vs Optic 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python爬虫headers设置后无效的解决方法
2017/10/21 Python
在pandas中一次性删除dataframe的多个列方法
2018/04/10 Python
Python使用reportlab模块生成PDF格式的文档
2019/03/11 Python
浅谈python新式类和旧式类区别
2019/04/26 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
CSS3实现莲花绽放的动画效果
2020/11/06 HTML / CSS
vue路由实现登录拦截
2021/03/24 Vue.js
供货协议书
2014/04/22 职场文书
集中采购方案
2014/06/10 职场文书
毕业生见习报告总结
2014/11/08 职场文书
初中教师个人总结
2015/02/10 职场文书
大学生简历自我评价2015
2015/03/03 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
创业计划书之花店
2019/09/20 职场文书
详解JavaScript中的执行上下文及调用堆栈
2021/04/29 Javascript
MySQL into_Mysql中replace与replace into用法案例详解
2021/09/14 MySQL