使用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 tools 系列 scrollable(2)
Sep 06 Javascript
jquery中ajax学习笔记一
Oct 16 Javascript
javascript查找字符串中出现最多的字符和次数的小例子
Oct 29 Javascript
纯javascript实现图片延时加载方法
Aug 21 Javascript
Webpack 实现 AngularJS 的延迟加载
Mar 02 Javascript
JavaScript兼容浏览器FF/IE技巧
Aug 14 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
Vue 2.0学习笔记之Vue中的computed属性
Oct 16 Javascript
vue.js element-ui validate中代码不执行问题解决方法
Dec 18 Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 Javascript
Electron-vue开发的客户端支付收款工具的实现
May 24 Javascript
Vue调用后端java接口的实例代码
Oct 28 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
php下将图片以二进制存入mysql数据库中并显示的实现代码
2010/05/27 PHP
Server.HTMLEncode让代码在页面里显示为源代码
2013/12/08 PHP
如何使用Gitblog和Markdown建自己的博客
2015/07/31 PHP
php分页查询的简单实现代码
2017/03/14 PHP
PHP批量删除jQuery操作
2017/07/23 PHP
Smarty模板配置实例简析
2019/07/20 PHP
php把文件设置为插件的技巧方法
2020/02/03 PHP
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
深入解析JavaScript中的变量作用域
2013/12/06 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
JavaScript提高网站性能优化的建议(二)
2016/07/24 Javascript
bootstrap datepicker 与bootstrapValidator同时使用时选择日期后无法正常触发校验的解决思路
2016/09/28 Javascript
基于SpringMVC+Bootstrap+DataTables实现表格服务端分页、模糊查询
2016/10/30 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
微信小程序日历/日期选择插件使用方法详解
2018/12/28 Javascript
layui上传图片到服务器的非项目目录下的方法
2019/09/26 Javascript
解决layui-table单元格设置为百分比在ie8下不能自适应的问题
2019/09/28 Javascript
JavaScript Tab菜单实现过程解析
2020/05/13 Javascript
简单了解JavaScript作用域
2020/07/31 Javascript
[19:26]TNC vs EG (BO3)
2018/06/07 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
Python自定义函数的创建、调用和函数的参数详解
2014/03/11 Python
Python3.4学习笔记之常用操作符,条件分支和循环用法示例
2019/03/01 Python
PyCharm下载和安装详细步骤
2019/12/17 Python
Python API len函数操作过程解析
2020/03/05 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
迪卡侬荷兰官网:Decathlon荷兰
2017/10/29 全球购物
匡威英国官网:Converse英国
2018/12/02 全球购物
C语言基础笔试题
2013/04/27 面试题
2014小学教师年度考核工作总结
2014/12/03 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
小学教师师德师风自我评价
2015/03/04 职场文书
Java 超详细讲解IO操作字节流与字符流
2022/03/25 Java/Android