使用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 相关文章推荐
JavaScript常用的弹出广告及背投广告实现方法
Feb 06 Javascript
轻松掌握JavaScript策略模式
Aug 25 Javascript
详解Html a标签中href和onclick用法、区别、优先级别
Jan 16 Javascript
Angular 4.0学习教程之架构详解
Sep 12 Javascript
详解HTML5 使用video标签实现选择摄像头功能
Oct 25 Javascript
js 只比较时间大小的实例
Oct 26 Javascript
解决angularjs前后端分离调用接口传递中文时中文乱码的问题
Aug 13 Javascript
JS使用百度地图API自动获取地址和经纬度操作示例
Apr 16 Javascript
node.js使用zlib模块进行数据压缩和解压操作示例
Feb 12 Javascript
jquery html添加元素/删除元素操作实例详解
May 20 jQuery
深入了解JavaScript词法作用域
Jul 29 Javascript
vue-cil之axios的二次封装与proxy反向代理使用说明
Apr 07 Vue.js
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入门学习笔记之一
2010/10/12 PHP
PHP实现图片上传并压缩
2015/12/22 PHP
php使用curl通过代理获取数据的实现方法
2016/05/16 PHP
JavaScript 笔记二 Array和Date对象方法
2010/05/22 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
JS实现日期加减的方法
2013/11/29 Javascript
JQuery实现的购物车功能(可以减少或者添加商品并自动计算价格)
2015/01/13 Javascript
分享一则JavaScript滚动条插件源码
2015/03/03 Javascript
jQuery插件dataTables添加序号列的方法
2016/07/06 Javascript
利用AngularJs实现京东首页轮播图效果
2016/09/08 Javascript
最全面的JS倒计时代码
2016/09/17 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
Angular 2父子组件数据传递之@Input和@Output详解(下)
2017/07/05 Javascript
javascript json字符串到json对象转义问题
2019/01/22 Javascript
vue实现form表单与table表格的数据关联功能示例
2019/01/29 Javascript
微信小程序环境下将文件上传到OSS的方法步骤
2019/05/31 Javascript
JS实现transform实现扇子效果
2020/01/17 Javascript
JavaScript的垃圾回收机制与内存管理
2020/08/06 Javascript
js实现抽奖功能
2020/11/24 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
使用Python的web.py框架实现类似Django的ORM查询的教程
2015/05/02 Python
Python模拟百度登录实例详解
2016/01/20 Python
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
pandas数据处理进阶详解
2019/10/11 Python
详解django中Template语言
2020/02/22 Python
拿来就用!Python批量合并PDF的示例代码
2020/08/10 Python
Python如何使用ConfigParser读取配置文件
2020/11/12 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
什么是Linux虚拟文件系统VFS
2015/08/25 面试题
JAVA程序员面试题
2012/10/03 面试题
公民代理授权委托书
2014/09/24 职场文书
小学生成绩单评语
2014/12/31 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
爱护环境建议书
2015/09/14 职场文书
攻击最高的10只幽灵系神奇宝贝,坚盾剑怪排第一,第五最为可怕
2022/03/18 日漫