使用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 处理网页内容的实现代码
Feb 15 Javascript
javascript实现在指定元素中垂直水平居中
Sep 13 Javascript
jQuery操作Table技巧大汇总
Jan 23 Javascript
jquery获取文档高度和窗口高度汇总
Jan 25 Javascript
JS触摸屏网页版仿app弹窗型滚动列表选择器/日期选择器
Oct 30 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
Sep 19 Javascript
基于Bootstrap实现城市三级联动
Nov 23 Javascript
layui table设置前台过滤转义等方法
Aug 17 Javascript
对Vue table 动态表格td可编辑的方法详解
Aug 28 Javascript
JS温故而知新之变量提升和时间死区
Jan 27 Javascript
vue中$refs, $emit, $on, $once, $off的使用详解
May 26 Javascript
小程序开发之模态框组件封装
Apr 23 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
mysql 字段类型说明
2007/04/27 PHP
很好用的PHP数据库类
2009/05/27 PHP
PHP合并两个数组的两种方式的异同
2012/09/14 PHP
windows7下安装php的imagick和imagemagick扩展教程
2014/07/04 PHP
php连接mysql数据库
2017/03/21 PHP
使用JQuery和s3captche实现一个水果名字的验证
2009/08/14 Javascript
JavaScript让IE浏览器event对象符合W3C DOM标准
2009/11/24 Javascript
JavaScript中的闭包原理分析
2010/03/08 Javascript
jquery dialog open后,服务器端控件失效的快速解决方法
2013/12/19 Javascript
Jquery实现自定义窗口随意的拖拽
2014/03/12 Javascript
详解JavaScript基于面向对象之继承实例
2015/12/16 Javascript
微信小程序 定义全局数据、函数复用、模版等详细介绍
2016/10/27 Javascript
JS实现根据用户输入分钟进行倒计时功能
2016/11/14 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
js+div+css下拉导航菜单完整代码分享
2016/12/28 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
js实现模糊匹配功能
2017/02/15 Javascript
BootStrap与Select2使用小结
2017/02/17 Javascript
微信小程序实现打开内置地图功能【附源码下载】
2017/12/07 Javascript
vue-cli V3.0版本的使用详解
2018/10/24 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
JavaScript中的相等操作符使用详解
2019/12/21 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
[00:32]2018DOTA2亚洲邀请赛Liquid出场
2018/04/03 DOTA
python实现电子书翻页小程序
2019/07/23 Python
Python猴子补丁Monkey Patch用法实例解析
2020/03/23 Python
MADE荷兰:提供原创设计师家具
2018/04/03 全球购物
Hanro官网:奢华男士和女士内衣、睡衣和家居服
2018/10/25 全球购物
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
java程序员面试交流
2012/11/29 面试题
毕业生幼师求职自荐信
2013/10/01 职场文书
成人高等教育毕业生自我鉴定
2013/10/22 职场文书
教师个人的自我评价分享
2014/01/02 职场文书
自我鉴定三原则
2014/01/13 职场文书
读书伴我成长演讲稿
2014/05/07 职场文书
2014年教育教学工作总结
2014/11/13 职场文书