使用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 相关文章推荐
麦鸡的TAB切换功能结合了javascript和css
Dec 17 Javascript
JSON 编辑器实现代码
Dec 06 Javascript
js函数调用常用方法详解
Dec 03 Javascript
CSS+jQuery实现的一个放大缩小动画效果
Sep 24 Javascript
JavaScript中对象属性的添加和删除示例
May 12 Javascript
jQuery3.0中的buildFragment私有函数详解
Aug 16 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
Sep 09 Javascript
遍历json 对象的属性并且动态添加属性的实现
Dec 02 Javascript
backbone简介_动力节点Java学院整理
Jul 14 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
Jul 22 jQuery
vue框架下部署上线后刷新报404问题的解决方案(推荐)
Apr 03 Javascript
JavaScript实现网页计算器功能
Oct 29 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函数microtime()用法与说明
2013/12/04 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
ThinkPHP CURD方法之field方法详解
2014/06/18 PHP
学习php设计模式 php实现模板方法模式
2015/12/08 PHP
php similar_text()函数的定义和用法
2016/05/12 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
2017/02/18 PHP
Thinkphp 框架扩展之Widget扩展实现方法分析
2020/04/23 PHP
5 cool javascript apps
2007/03/24 Javascript
jquery.combobox中文api和例子,修复了上面的小bug
2011/03/28 Javascript
JS图像无缝滚动脚本非常好用
2014/02/10 Javascript
angularJS与bootstrap结合实现动态加载弹出提示内容
2015/10/16 Javascript
jQuery实现带渐显效果的人物多级关系图代码
2015/10/16 Javascript
JSON字符串和对象相互转换实例分析
2016/06/16 Javascript
JS中split()用法(将字符串按指定符号分割成数组)
2016/10/24 Javascript
vue-resourse将json数据输出实例
2017/03/08 Javascript
vue.js内部自定义指令与全局自定义指令的实现详解(利用directive)
2017/07/11 Javascript
使用yeoman构建angular应用的方法
2017/08/14 Javascript
nodejs+mongodb+vue前后台配置ueditor的示例代码
2018/01/02 NodeJs
JQuery 实现文件下载的常用方法分析
2019/10/29 jQuery
在Uni中使用Vue的EventBus总线机制操作
2020/07/31 Javascript
React冒泡和阻止冒泡的应用详解
2020/08/18 Javascript
如何利用nodejs实现命令行游戏
2020/11/24 NodeJs
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
python实现图片彩色转化为素描
2019/01/15 Python
下载官网python并安装的步骤详解
2019/10/12 Python
利用Python的turtle库绘制玫瑰教程
2019/11/23 Python
CSS3中的opacity属性使用教程
2015/08/19 HTML / CSS
澳大利亚女性快速时尚零售商:Ally Fashion
2018/04/25 全球购物
德国最新街头服饰网上商店:BODYCHECK
2019/09/15 全球购物
教育学专业毕业生的自我鉴定
2013/11/26 职场文书
初中国旗下的演讲稿
2014/08/28 职场文书
单位法定代表人授权委托书
2014/09/20 职场文书
学校法制宣传日活动总结
2014/11/01 职场文书
神龙架导游词
2015/02/11 职场文书
MySQL 如何分析查询性能
2021/05/12 MySQL
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang