Spring使用ajax异步上传文件
博客已迁移到CSDN《https://blog.csdn.net/qq_33375499》 单文件上传
<!-- 创建文件选择框 -->
文件上传 :<input type="file" id="file" name="filename" />
AJAX获取数据并进行上传:
// 创建formData对象,用于保存ajax上传的参数信息
var formData = new FormData();
// 获取要上传的文件file
var files = document.getElementById("file").files;
if(files.length <= 0){
alert("请选择文件");
return;
}
var file = files[0];
// 将文件添加到formData对象中
formData.append("file",file);
// ajax 异步上传
$.ajax({
type:"post",
url:"upload.do",// 上传请求url
data:formData,// 上传参数
processData : false,// 必须,设置不转换为string,默认为true
contentType : false,
success:function(data){
alert("上传成功");
},
error:function(e){
alert("上传失败");
}
});
后台数据接收action(controller)代码
第一种:使用Springmvc自带注解接收文件
@RequestMapping("upload.do")
public void upload(@RequestParam(value="file")MultipartFile file) throws Exception {// 使用RequestParam注解接收参数,value值为formData中文件对应的key值
// 文件名称
file.getOriginalFilename();
// 文件字节数组
file.getBytes();
...
}
第二种:用HttpServletRequest接收文件
@RequestMapping("upload.do")
public void upload() throws Exception {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;// request转换
MultipartFile file = multipartHttpServletRequest.getFile("file"); // 参数为fromData中文件的key值
// 文件名称
file.getOriginalFilename();
// 文件字节数组
file.getBytes();
...
}
多文件上传
<!-- 创建文件选择框 -->
文件上传1 :<input type="file" id="file1" name="filename" />
文件上传2 :<input type="file" id="file2" name="filename" />
文件上传3 :<input type="file" id="file3" name="filename" />
AJAX获取数据并进行上传:
// 创建formData对象,用于保存ajax上传的参数信息
var formData = new FormData();
// 获取要上传的文件file
var files = document.getElementsByName("filename");
for (var i = 0, len = files.length; i < len; i++){
var fs = files[i].files;
if(fs.length <= 0){
alert("请先上传文件");
return;
}
// 将文件添加到formData对象中
formData.append("files",fs[0]);
}
// ajax 异步上传
$.ajax({
type:"post",
url:"upload.do",// 上传请求url
data:formData,// 上传参数
processData : false,// 必须,设置不转换为string,默认为true
contentType : false,
success:function(data){
alert("上传成功");
},
error:function(e){
alert("上传失败");
}
});
后台数据接收action(controller)代码
第一种:使用Springmvc自带注解接收文件
@RequestMapping("upload.do")
public void upload(@RequestParam(value="files")MultipartFile[] files) throws Exception {// 使用RequestParam注解接收参数,value值为formData中文件对应的key值
for(int i = 0,len = files.length; i < len; i++){
// 文件名称
files[i].getOriginalFilename();
// 文件字节数组
files[i].getBytes();
}
...
}
第二种:用HttpServletRequest接收文件
@RequestMapping("upload.do")
public void upload() throws Exception {
MultipartHttpServletRequest multipartHttpServletRequest = (MultipartHttpServletRequest) request;// request转换
MultipartFile[] files = multipartHttpServletRequest.getFiles("files"); // 参数为fromData中文件的key值
for(int i = 0,len = files.length; i < len; i++){
// 文件名称
files[i].getOriginalFilename();
// 文件字节数组
files[i].getBytes();
}
...
}
Spring使用ajax异步上传文件的更多相关文章
- ajax异步上传文件和表单同步上传文件 的区别
1. 用表单上传文件(以照片为例)-同步上传 html部分代码:这里请求地址index.php <!DOCTYPE html> <html lang="en"&g ...
- 基于Flask开发网站 -- 前端Ajax异步上传文件到后台
大家好,我是辰哥~ 辰哥最近利用空闲时间在写一个在线可视化平台,过程中也觉得一些技术还是比较有意思的,所以就以模块化的形式分享出来.如:从网页界面(前端)上传文件到服务器(后端). 放一下该模块的界面 ...
- ajax异步上传文件FormDate方式,html支持才可使用
今天需要做一个头像的预览功能,所以我想到了异步上传文件. 总结几点: 异步上传难点: 文件二进制流如何获取 是否需要设置表单的头,就是content-Type那里.异步,所以无所谓了吧. 其他就差不多 ...
- 使用ajax异步上传文件或图片(配合php)
//html代码 <form enctype="multipart/form-data" id="upForm"> <input type=& ...
- 使用Ajax异步上传文件
之前上传文件都是用表单form设置post请求和enctype类型: <form id="upload_form"action="" method=&qu ...
- Ajax 异步上传文件
需要引用js jquery.form 前端代码 <form action="/Save" id="mainForm" method="post& ...
- ajax异步上传文件之data参数----小哈学js
下载ajaxFileUpload.js(下载网址:http://fileuploadajax.codeplex.com/downloads/get/20976) 修改ajaxFileUpload.js ...
- (H5)FormData+AJAX+SpringMVC跨域异步上传文件
最近都没时间整理资料了,一入职就要弄懂业务,整天被业务弄得血崩. 总结下今天弄了一个早上的跨域异步上传文件.主要用到技术有HTML5的FormData,AJAX,Spring MVC. 首先看下上传页 ...
- html5+php实现文件的断点续传ajax异步上传
html5+php实现文件的断点续传ajax异步上传 准备知识:断点续传,既然有断,那就应该有文件分割的过程,一段一段的传.以前文件无法分割,但随着HTML5新特性的引入,类似普通字符串.数组的分割, ...
随机推荐
- wordcounter
这周是一个wc的程序,通过C语言在WINDOWS上实现的. 我在通过参考的代码后,发现WC程序的代码其实相当简洁,主要的代码不过十数行.主要通过设置一个字符型变量,这个变量可以得到一个从键盘输入的字符 ...
- 【腾讯Bugly干货分享】iOS App 签名的原理
本文来自 WeRead 团队博客: http://wereadteam.github.io/ iOS 签名机制挺复杂,各种证书,Provisioning Profile,entitlements,Ce ...
- 【腾讯Bugly干货分享】职场中脱颖而出的成长秘诀
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/uQKpVg7HMLfogGzzMyc9iQ 导语 时光 ...
- Numpy学习二:数组的索引与切片
1.一维数组索引与切片#创建一维数组arr1d = np.arange(10)print(arr1d) 结果:[0 1 2 3 4 5 6 7 8 9] #数组的索引从0开始,通过索引获取第三个元素a ...
- 应用监控CAT之cat-home源码阅读(三)
上两章从点到点讲了,cat-client 到 cat-consumer 的请求处理过程,但是怎么样让我们监控给人看到呢?那么就需要一个展示的后台了,也就是本章要讲的 cat-home 模块 ! 带 ...
- 随手用python写一个下载jdk源码爬虫
最近在研读jdk源码,网上找了下资源,发现都不完整. 后来新发现了一个有完整源码的地方,主要包括了java,c,c++的东西,装逼需要,就想拿来玩玩.但是,找了好多种下载打开的方式,发现都不对.于是, ...
- python数据抓取分析(python + mongodb)
分享点干货!!! Python数据抓取分析 编程模块:requests,lxml,pymongo,time,BeautifulSoup 首先获取所有产品的分类网址: def step(): try: ...
- Docker简介以及操作
Docker 简介 Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目.它基于 Google 公司推出的 Go 语言实现. 项目后来加入了 Linu ...
- 测试工具之Fiddler
Fiddler是一款很好的抓包分析工具,里面有很多小功能,这里介绍常用功能 Fiddler下载地址: https://www.telerik.com/download/fiddler 下载完成后,直接 ...
- 使用 dotTrace 分析 .NET Core 代码问题
0.背景 在项目开发之中,前期可能主要以保证任务完成为主,对于性能优化主要在于开发完成之后再来进行.可能在测试的时候发现部分接口的代码执行时间过长,但是又毫无头绪,这个时候你就需要性能分析工具来协助你 ...