使用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 中的 &amp;&amp; 和 || 使用小结
Apr 25 Javascript
js 3种归并操作的实例代码
Oct 30 Javascript
使用js实现按钮控制文本框加1减1应用于小时+分钟
Dec 09 Javascript
JS运动基础框架实例分析
Mar 03 Javascript
全面解析Bootstrap表单使用方法(表单控件)
Nov 24 Javascript
JS中跨页面调用变量和函数的方法(例如a.js 和 b.js中互相调用)
Nov 01 Javascript
Vuejs 组件——props数据传递的实例代码
Mar 07 Javascript
JQuery用$.ajax或$.getJSON跨域获取JSON数据的实现代码
Sep 23 jQuery
Angular使用动态加载组件方法实现Dialog的示例
May 11 Javascript
vue.js删除列表中的一行
Jun 30 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
Mar 12 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 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 Memcache 中实现消息队列
2009/11/24 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
php过滤所有恶意字符(批量过滤post,get敏感数据)
2014/03/18 PHP
php数组中包含中文的排序方法
2014/06/03 PHP
Linux下php5.4启动脚本
2014/08/03 PHP
Yii入门教程之目录结构、入口文件及路由设置
2014/11/25 PHP
curl和libcurl的区别简介
2015/07/01 PHP
php调用云片网接口发送短信的实现方法
2017/10/25 PHP
JQuery 学习笔记 选择器之四
2009/07/23 Javascript
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jQuery插件jQuery-JSONP开发ajax调用使用注意事项
2013/11/22 Javascript
使用百度地图api实现根据地址查询经纬度
2014/12/11 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
jQuery插件EnPlaceholder实现输入框提示文字
2015/06/05 Javascript
谈谈JavaScript的New关键字
2016/08/26 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
详解vue项目首页加载速度优化
2017/10/18 Javascript
axios发送post请求,提交图片类型表单数据方法
2018/03/16 Javascript
基于javascript的拖拽类封装详解
2019/04/19 Javascript
详解简单易懂的 ES6 Iterators 指南和示例
2019/09/24 Javascript
使用nodeJS中的fs模块对文件及目录进行读写,删除,追加,等操作详解
2020/02/06 NodeJs
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[00:53]TI3正赛第三天 DK怒破A队不败金身 现场国旗飘扬热血激昂
2013/08/10 DOTA
理解Python中的With语句
2016/03/18 Python
Django日志模块logging的配置详解
2017/02/14 Python
Python 数据结构之旋转链表
2017/02/25 Python
Mac安装python3的方法步骤
2019/08/09 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
迪拜领先运动补剂零售品牌中文站:Sporter商城
2019/08/20 全球购物
Diesel美国网上商店:意大利牛仔时装品牌
2020/12/10 全球购物
群众路线剖析材料
2014/02/02 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
营业用房租赁协议书
2014/11/26 职场文书
教师听课评语大全
2014/12/31 职场文书
python读取pdf格式文档的实现代码
2021/04/01 Python