<html>
<head>
<title>FormData多图上传演示</title>
</head>
<body>
     <a href="javascript:newPicture();" >上传新图片</a>
<input id="picture" type="file" style="display: none;" multiple="multiple">
</body>
<script type="text/javascript" src="/common/js/jquery.min.js"></script>
<script type="text/javascript">
function newPicture(){
$('#picture').click();
}     $('#picture').on('change',function(){
var files= $(this).get(0).files;
//如果有选择图片则上传图片
var formData= new FormData();
if(files.length>0){
//formData.append("files",files[0]);
for(var i=0;i<files.length;i++){
            //FormData.set 和 append() 的区别在于,如果指定的键已经存在, FormData.set 会使用新值覆盖已有的值,而 append() 会把新值添加到已有值集合的后面。
            //注意:如果你的服务器端是PHP那么为了与php命名习惯一致在名称中需要添加[],如formData.append('files[]',files[i]);
formData.append('files',files[i]);
}
var xhr= new XMLHttpRequest();
xhr.open('POST', '/uploadImgAlbums');
xhr.onreadystatechange = function(){
if (xhr.readyState== 4&& xhr.status== 200){
console.log('上传成功'+xhr.responseText);
//处理其他数据,这里根据需要进行调整
}
};
xhr.send(formData);
}
});
</script>
</html>

看完了页面代码,在看下后端的控制器,我后端使用了spring mvc:

@RequestMapping("uploadImgAlbums")
public void albumUploadImgs(@RequestParam(value = "files", required = true) MultipartFile[] multipartFiles,HttpServletRequest req, HttpServletResponse response){
for(MultipartFile multipartFile:multipartFiles){
       //打印上传的文件路径
System.out.println(multipartFile.getOriginalFilename());
      //打印文件字节数据
      System.out.println(multipartFile.getBytes());
   }
}

我这里只是简单展示下数据发送到了后端文件上传控制器,剩下的根据项目业务的需求继续进行下去吧。

推荐阅读:https://developer.mozilla.org/zh-CN/docs/Web/API/FormData

https://developer.mozilla.org/zh-CN/docs/Web/API/FormData/Using_FormData_Objects

https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHTTPRequest

https://developer.mozilla.org/zh-CN/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest

利用html5的FormData对象实现多图上传的更多相关文章

  1. php利用七牛云的对象存储完成图片上传-高效管理图片

    在搭建个人博客时,大家都会买一台云服务器.可是图片的存放一直是一个问题,冷月帮大家找到一个免费的第三方平台对象存储-七牛云.大家可以把图片上传到七牛云的对象存储,大大节约服务器的压力. 首先,大家在使 ...

  2. FormData对象实现文件Ajax上传

    后台: import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; imp ...

  3. 玩转图片上传————原生js XMLHttpRequest 结合FormData对象实现的图片上传

    var form=document.getElementById("formId"); var formData=new FormData(form); var oReq = ne ...

  4. springBoot+ vue+ Element-ui实现合并多图上传(一次请求多张图片)

    这次上传使用的是Elemet-ui的uoload上传组件,组件预留的钩子回调还是比较充足的. 1:  实现多图上传主要用到以下两个属性: 下面讲一下属性使用: <el-upload :actio ...

  5. HTML5 原生API input file 来实现多图上传,并大图预览

    闲来无事,突然想用原生来实现图片的多图上传. 一.效果图大致如下: 1.上传时可以选择多图 2.上传之后缩略图下过图如下: 3.点击缩略图,大图展示当前所点击的图片,并可以左右滑动查看其它的缩略图对应 ...

  6. 使用PHP和HTML5 FormData实现无刷新文件上传教程

    无刷新文件上传是一个常见而又有点复杂的问题,常见的解决方案是构造 iframe 方式实现. 在 HTML5 中提供了一个 FormData 对象 API,通过 FormData 可以方便地构造一个表单 ...

  7. HTML5可预览多图片ajax上传(使用formData传递数据)

    HTML5可预览多图片ajax上传(使用formData传递数据) 在介绍上传图片之前,我们简单的来了解下FormData的基本使用:介绍完成后这些基本知识后,我们会在文章最后提供一个demo,就是a ...

  8. 怎么样通过php使用html5实现多文件上传?(php多图上传)

    <!DOCTYPE html><html lang="zh-cn"> <head> <meta charset="utf-8&q ...

  9. FormData+Ajax 实现多文件上传 学习使用FormData对象

    FormData对象是为序列化表以及创建与表单格式相同的数据(当然是用于XHR传输)提供便利. 今天我们使用dropzone和FormData实现多文件上传功能. var SAMP = null; / ...

随机推荐

  1. Liunx 发送邮件

    可以使用rpm -qa | grep mailx查看系统自带的mailx版本. 使用wget http://sourceforge.net/projects/heirloom/files/latest ...

  2. A. Minimizing the String

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  3. 2016"百度之星" - 资格赛(Astar Round1)D

    Problem Description 度熊所居住的 D 国,是一个完全尊重人权的国度.以至于这个国家的所有人命名自己的名字都非常奇怪.一个人的名字由若干个字符组成,同样的,这些字符的全排列的结果中的 ...

  4. linux中swap的构建

    一.使用物理分区构建swap 1.分区 [root@server3 ~]# fdisk /dev/vdb Welcome to fdisk (util-linux 2.23.2). Changes w ...

  5. sql 常用语句备份

    新增字段,默认其他字段计算 ALTER TABLE 表名 add 字段名 as 字段名1+字段名2 SQL查看变量的数据类型 DECLARE @Sum int--SET @Sum = 0SELECT ...

  6. spring boot 入参方式

    方式: 1).直接写,如public User index2(String name) 2).@RequestParam 与直接写的区别是,可以写默认值. 3).@RequestBody 因为传入的是 ...

  7. JavaSE---内部类

    1.概述 1.1 内部类:一个类定义在其他类的内部,这个类被称为内部类: 1.1.1 内部类可以放在外部类的任何位置,方法中也可以(称为局部内部类): 1.1.2 一般将内部类作为 成员内部类 使用 ...

  8. 更换 npm 源国内镜像 cnpm

    默认镜像源 https://www.npmjs.com/ 临时改变镜像源 方法一:通过config配置指向国内镜像源 npm config set registry http://registry.c ...

  9. linux C判断文件是否存在

    access函数 功能描述: 检查调用进程是否可以对指定的文件执行某种操作.   用法: #include <unistd.h> #include <fcntl.h> int ...

  10. sort命令和对中文的处理

    使用示例:sort -k1,1nr xxxfile 需要指定起始列和结束列,否则可能排序错误   sort命令应用于中文时需要在sort前设置环境变量(以兼容C语言的标准): LC_COLLATE=C ...