使用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 相关文章推荐
js split 的用法和定义 js split分割字符串成数组的实例代码
May 13 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
Dec 15 Javascript
javascript实现密码验证
Nov 10 Javascript
详解js私有作用域中创建特权方法
Jan 25 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
May 25 Javascript
jquery判断iPhone、Android设备类型
Sep 14 Javascript
node.js Sequelize实现单实例字段或批量自增、自减
Dec 08 Javascript
Json按某个键的值进行排序
Dec 22 Javascript
JavaScript仿微信打飞机游戏
Jul 05 Javascript
jquery.uploadView 实现图片预览上传功能
Aug 10 jQuery
node.js实现的装饰者模式示例
Sep 06 Javascript
手动下载Chrome并解决puppeteer无法使用问题
Nov 12 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
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
在 Laravel 6 中缓存数据库查询结果的方法
2019/12/11 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
JQuery获取当前屏幕的高度宽度的实现代码
2011/07/12 Javascript
jquery结合CSS使用validate实现漂亮的验证
2015/01/29 Javascript
JavaScript点击按钮后弹出透明浮动层的方法
2015/05/11 Javascript
JavaScript知识点总结(六)之JavaScript判断变量数据类型
2016/05/31 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
jQuery的ajax和遍历数组json实例代码
2016/08/01 Javascript
JS实现漂亮的时间选择框效果
2016/08/20 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
vue-cli项目如何使用vue-resource获取本地的json数据(模拟服务端返回数据)
2017/08/04 Javascript
bootstrap table sum总数量统计实现方法
2017/10/29 Javascript
在Node.js中将SVG图像转换为PNG,JPEG,TIFF,WEBP和HEIF格式的方法
2019/08/22 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
vue 如何使用递归组件
2020/10/23 Javascript
Python网站验证码识别
2016/01/25 Python
简单谈谈python的反射机制
2016/06/28 Python
Python编程pygal绘图实例之XY线
2017/12/09 Python
python实现决策树ID3算法的示例代码
2018/05/30 Python
解决Tensorflow使用pip安装后没有model目录的问题
2018/06/13 Python
python sklearn库实现简单逻辑回归的实例代码
2019/07/01 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
python实现跨excel sheet复制代码实例
2020/03/03 Python
python+selenium+chrome批量文件下载并自动创建文件夹实例
2020/04/27 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
python学习之使用Matplotlib画实时的动态折线图的示例代码
2021/02/25 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
吉列剃须刀美国官网:Gillette美国
2018/07/13 全球购物
英国奢侈品在线精品店:Hervia
2020/09/03 全球购物
视图的作用
2014/12/19 面试题
心理学专业大学生职业生涯规划范文
2014/02/19 职场文书
个人考核材料
2014/05/15 职场文书
自主招生英文自荐信
2015/03/25 职场文书
投诉书范文
2015/07/02 职场文书
nginx sticky实现基于cookie负载均衡示例详解
2022/12/24 Servers