使用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 trim() 功能源代码
Feb 14 Javascript
js判断IE6/IE7/FF的代码[XMLHttpRequest]
Feb 16 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
Oct 18 Javascript
jquery validate添加自定义验证规则(验证邮箱 邮政编码)
Dec 04 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
javascript中字体浮动效果的简单实例演示
Nov 18 Javascript
详解JavaScript中的自定义事件编写
May 10 Javascript
详解Vue.js入门环境搭建
Mar 17 Javascript
javascript高仿热血传奇游戏实现代码
Feb 22 Javascript
JavaScript轮播停留效果的实现思路
May 24 Javascript
Vue组件实现触底判断
Jun 26 Javascript
JS实现公告上线滚动效果
Jan 10 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
PHP5.0对象模型探索之抽象方法和抽象类
2006/09/05 PHP
php中的一个中文字符串截取函数
2007/02/14 PHP
php daddslashes()和 saddslashes()有哪些区别分析
2012/10/26 PHP
php 发送带附件邮件示例
2014/01/23 PHP
大家都应该掌握的PHP关联数组使用技巧
2015/12/25 PHP
ThinkPHP实现更新数据实例详解(demo)
2016/06/29 PHP
php redis setnx分布式锁简单原理解析
2020/10/23 PHP
ASP.NET中使用后端代码注册脚本 生成JQUERY-EASYUI的界面错位的解决方法
2010/06/12 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
Jquery仿IGoogle实现可拖动窗口示例代码
2014/08/22 Javascript
JavaScript中的object转换函数toString()与valueOf()介绍
2014/12/31 Javascript
jQuery 回调函数(callback)的使用和基础
2015/02/26 Javascript
Jquery Ajax Error 调试错误的技巧
2015/11/20 Javascript
理解Javascript图片预加载
2016/02/23 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
Node.js实现注册邮箱激活功能的方法示例
2018/03/23 Javascript
[49:05]Newbee vs TNC 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python struct模块解析
2014/06/12 Python
python实现进程间通信简单实例
2014/07/23 Python
Python3字符串学习教程
2015/08/20 Python
深入理解NumPy简明教程---数组2
2016/12/17 Python
Python2与python3中 for 循环语句基础与实例分析
2017/11/20 Python
Python使用三种方法实现PCA算法
2017/12/12 Python
matplotlib 输出保存指定尺寸的图片方法
2018/05/24 Python
python脚本监控Tomcat服务器的方法
2018/07/06 Python
python装饰器使用实例详解
2019/12/14 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
python enumerate内置函数用法总结
2020/01/07 Python
tensorboard显示空白的解决
2020/02/15 Python
Python pip安装模块提示错误解决方案
2020/05/22 Python
HTML5 textarea高度自适应的两种方案
2020/04/08 HTML / CSS
广告业务员岗位职责
2014/02/06 职场文书
父亲节感言
2015/08/03 职场文书
通知怎么写?
2019/04/17 职场文书
Python机器学习实战之k-近邻算法的实现
2021/11/27 Python