ajax多文件上传,js原生ajax请求(转)
2024-08-28 05:08:43
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也是百度之后,找不到原页了,所以就不附转载地址了。见谅。
最新文章
- WINDOWS系统下MYSQL安装过程中的注意事项
- 解读ASP.NET 5 &; MVC6系列(5):Configuration配置信息管理
- PHP explode()函数
- library not found for -lAFNetworking
- 【转载】ANSYS的APDL与C语言混合编程(实例)
- GoldenGate单向复制配置示例
- jquery easyui鼠标右击显示自定义的菜单
- Oracle查找被长时间锁定的对象并kill
- 简谈Comparable和Comparator区别
- Java 设计模式实现 不错的引用
- ETL工具框架开源软件
- 有关于web server架构的一个小疑问
- Python初学——pickle &; set
- C# 扩展方法使用
- Openvpn搭建详解
- 使用微软自带 SharpZipLib 进行多文件 压缩
- 代码规范mark一下
- C和 C++的特点
- Visual Studio 2013 配置多个Release版本,并为每个版本配置预编译的宏
- Linux 命令详解(九)轻易删除OpenSSL 的后果
热门文章
- Codeforces 1131 (div 2)
- YumRepo Error: All mirror URLs are not using ftp, http[s] or file
- 14 C#编程中的逻辑运算
- jQuery学习笔记(1)-初探
- Quartus 12的TimeQuest Timing Analyzer
- 并发编程学习笔记(5)----AbstractQueuedSynchronizer(AQS)原理及使用
- RabbitMQ系列(一)--消息中间件MQ如何去选择
- 00JAVA EE
- Python之UDP编程
- 树状数组 &; lowbit()