<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

最新文章

  1. VSS 请求程序和 SharePoint 2013
  2. Mac Pro 修改环境变量
  3. 为textarea增加maxlength属性(转)
  4. asp.net后台获取路径的各种方法归纳
  5. C# 文件的读取、写入和删除
  6. delphi TSaveDialog
  7. Android 自定义View高级特效,神奇的贝塞尔曲线
  8. QT5:C++实现基于Multimedia的音乐播放器(序)
  9. spark ML pipeline 学习
  10. opencv imwrite保存图片花屏的问题
  11. [java]配置java环境
  12. 前端面试题整理—HTTP篇
  13. Spring Cloud OAuth2.0 微服务中配置 Jwt Token 签名/验证
  14. 内存直读技术DMA
  15. 编译模块的Makefile解析
  16. 用webstorm开发前端项目前的一些配置
  17. OpenACC 云水参数化方案
  18. js小练习
  19. @cms_content_list
  20. Java设置jre通过java new Date()得到的时间的时区

热门文章

  1. 对DeepLung数据预处理部分的详细展示
  2. sql 日期对比
  3. Vue 父页面 值传递 不到 子组件....
  4. 杭电ACM hdu 2079 选课时间 (模板)
  5. 3.数据校验和SpringEL
  6. mysql 示例数据库安装
  7. asp.net core WebAPI学习以及 发布(***入门学习)
  8. GO 日志追加记录
  9. django DRF 图片路径问题
  10. 单例模式+volatile禁止指令重排序