function uploadImageFile(){
var xhr = new XMLHttpRequest();
//定义表单变量
var file = document.getElementById('imageFiles').files;
//新建一个FormData对象
var formData = new FormData();
//追加文件数据
for(i=0;i<file.length;i++){
formData.append("file["+i+"]", file[i]);
} //post方式
xhr.open('POST', memberPath + "/backstage/photo/uploadPhoto.json");
//发送请求
xhr.send(formData);
//success回调
xhr.onreadystatechange = function(){
if ( xhr.readyState == 4 && xhr.status == 200 ) {
console.log( xhr.responseText );
var data = xhr.responseText;
data = JSON.parse(xhr.responseText)
if (data.code == 100) {
//insertPhotoList(data.userPhotos); 这里传过来的是一个List<model>,做页面逻辑处理的
} else if (data.code == 101) {
aler('上传图片不符合要求');
} else if (data.code == 102){
var update_vip_url = 'update_vip_url';
alert('您目前是普通会员,图片文件不可超过5M|升级会员可上传更大文件立即升级会员');
} else if (data.code == 103) {
alert('您目前是VIP会员,图片文件不可超过50M');
} }
};
//设置超时时间
xhr.timeout = 100000;
xhr.ontimeout = function(event){}
}

这里是针对一个按钮可多选的上传,也就是input加上了 multiple="multiple" 属性。change事件触发的。后台用的springMVC框架。

 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Iterator<String> names = multipartRequest.getFileNames(); while (names.hasNext()) {
String name = (String) names.next();
MultipartFile multipartFile = multipartRequest.getFile(name);
}

这里用循环拿到文件,就可以进行上传操作了。

这里只是工作中遇到了,记录一下,考虑并不周全。js也是百度之后,找不到原页了,所以就不附转载地址了。见谅。

最新文章

  1. WINDOWS系统下MYSQL安装过程中的注意事项
  2. 解读ASP.NET 5 &amp; MVC6系列(5):Configuration配置信息管理
  3. PHP explode()函数
  4. library not found for -lAFNetworking
  5. 【转载】ANSYS的APDL与C语言混合编程(实例)
  6. GoldenGate单向复制配置示例
  7. jquery easyui鼠标右击显示自定义的菜单
  8. Oracle查找被长时间锁定的对象并kill
  9. 简谈Comparable和Comparator区别
  10. Java 设计模式实现 不错的引用
  11. ETL工具框架开源软件
  12. 有关于web server架构的一个小疑问
  13. Python初学——pickle &amp; set
  14. C# 扩展方法使用
  15. Openvpn搭建详解
  16. 使用微软自带 SharpZipLib 进行多文件 压缩
  17. 代码规范mark一下
  18. C和 C++的特点
  19. Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏
  20. Linux 命令详解(九)轻易删除OpenSSL 的后果

热门文章

  1. Codeforces 1131 (div 2)
  2. YumRepo Error: All mirror URLs are not using ftp, http[s] or file
  3. 14 C#编程中的逻辑运算
  4. jQuery学习笔记(1)-初探
  5. Quartus 12的TimeQuest Timing Analyzer
  6. 并发编程学习笔记(5)----AbstractQueuedSynchronizer(AQS)原理及使用
  7. RabbitMQ系列(一)--消息中间件MQ如何去选择
  8. 00JAVA EE
  9. Python之UDP编程
  10. 树状数组 &amp; lowbit()