使用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 相关文章推荐
支持ie与FireFox的剪切板操作代码
Sep 28 Javascript
js关闭父窗口时关闭子窗口
Apr 01 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
Apr 01 Javascript
js报$ is not a function 的问题的解决方法
Jan 20 Javascript
js数组的操作指南
Dec 28 Javascript
javascript 动态创建表格
Jan 08 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
Jul 13 Javascript
微信小程序之选项卡的实现方法
Sep 29 Javascript
JavaScript伪数组用法实例分析
Dec 22 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
May 30 Javascript
node(koa2) web应用模块介绍详解
Mar 29 Javascript
vue使用swiper实现左右滑动切换图片
Oct 16 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数据库里所有表的实现代码
2011/07/13 PHP
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
Javascript的表单与验证-非空验证
2016/03/18 Javascript
javascript css红色经典选项卡效果实现代码
2016/05/17 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
js中常用的Math方法总结
2017/01/12 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
jQuery实现的回车触发按钮事件功能示例
2018/03/25 jQuery
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
vue 实现滚动到底部翻页效果(pc端)
2019/07/31 Javascript
在Layui 的表格模板中,实现layer父页面和子页面传值交互的方法
2019/09/10 Javascript
js实现随机点名程序
2020/09/17 Javascript
Vue实现按钮级权限方案
2019/11/21 Javascript
一些常用的Python爬虫技巧汇总
2016/09/28 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
python将txt文件读取为字典的示例
2018/12/22 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
Python中使用双下划线防止类属性被覆盖问题
2019/06/27 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
520使用Python实现“我爱你”表白
2020/05/20 Python
纯CSS3实现的井字棋游戏
2020/11/25 HTML / CSS
html5指南-6.如何创建离线web应用程序实现离线访问
2013/01/07 HTML / CSS
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
嘻哈珠宝品牌:KRKC&CO
2020/10/19 全球购物
一套VC试题
2015/01/23 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
2013/03/30 面试题
营销主管自我评价怎么写
2013/09/19 职场文书
走群众路线剖析材料
2014/10/09 职场文书
上学路上观后感
2015/06/16 职场文书
医院消毒隔离制度
2015/08/05 职场文书