spring实现文件上传
2015-07-02 17:12
302 查看
1.jsp页面直接引入
<script type="text/javascript" src="js/jquery/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/jquery/ajaxfileupload.js"></script>
<script type="text/javascript" src="js/jquery/jquery.json-2.4.js"></script>
<script type="text/javascript">
//定时器对象
var uploadProcessTimer = null;
function ajaxFileUpload()
{
$.ajaxFileUpload
({
url:'/upload/mvc/upload.do',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'json',
data:{name: $('#name').val()},
success: function (data, status)
{
//清除定时器
if(uploadProcessTimer) {
window.clearInterval(uploadProcessTimer);
}
$('#loading').hide();
var message = data['message'];
var code = data['code'];
if(code != 200) {
$('#fileUploadProcess').html('0%');
}
if(message)
{
alert(data.message);
}
},
error: function (data, status, e)
{
//清除定时器
if(uploadProcessTimer) {
window.clearInterval(uploadProcessTimer);
}
$('#loading').hide();
//这里处理的是网络异常,返回参数解析异常,DOM操作异常
alert("上传发生异常");
}
})
return false;
}
</script>
附件:<input id="fileToUpload", name="file" type="file" class="input"> <br/>
<br><br>
<input type="button" onclick="return ajaxFileUpload();" value="上传"><br/>
java:
@RequestMapping(value = "upload", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> fileUpload(
@RequestParam("file") CommonsMultipartFile file,
HttpSession session, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 清除上次上传进度信息
String saveDirectoryPath = Constants.UPLOAD_PLATFORM + "/" + uploadFolderName;
File saveDirectory = new File(saveDirectoryPath);
if (!saveDirectory.exists()) {
saveDirectory.mkdir();
}
// 判断文件是否存在
if (!file.isEmpty()) {
String fileName = file.getOriginalFilename();
file.transferTo(new File(saveDirectory, fileName));
}
return State.OK.toMap();
}
public enum State {
OK(200, "上传成功"),
ERROR(500, "上传失败"),
OVER_FILE_LIMIT(501, "超过上传大小限制"),
NO_SUPPORT_EXTENSION(502, "不支持的扩展名");
private int code;
private String message;
private State(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", this.code);
map.put("message", this.message);
return map;
}
}
<script type="text/javascript" src="js/jquery/jquery-1.9.1.js"></script>
<script type="text/javascript" src="js/jquery/ajaxfileupload.js"></script>
<script type="text/javascript" src="js/jquery/jquery.json-2.4.js"></script>
<script type="text/javascript">
//定时器对象
var uploadProcessTimer = null;
function ajaxFileUpload()
{
$.ajaxFileUpload
({
url:'/upload/mvc/upload.do',
secureuri:false,
fileElementId:'fileToUpload',
dataType: 'json',
data:{name: $('#name').val()},
success: function (data, status)
{
//清除定时器
if(uploadProcessTimer) {
window.clearInterval(uploadProcessTimer);
}
$('#loading').hide();
var message = data['message'];
var code = data['code'];
if(code != 200) {
$('#fileUploadProcess').html('0%');
}
if(message)
{
alert(data.message);
}
},
error: function (data, status, e)
{
//清除定时器
if(uploadProcessTimer) {
window.clearInterval(uploadProcessTimer);
}
$('#loading').hide();
//这里处理的是网络异常,返回参数解析异常,DOM操作异常
alert("上传发生异常");
}
})
return false;
}
</script>
附件:<input id="fileToUpload", name="file" type="file" class="input"> <br/>
<br><br>
<input type="button" onclick="return ajaxFileUpload();" value="上传"><br/>
java:
@RequestMapping(value = "upload", method = RequestMethod.POST)
public @ResponseBody Map<String, Object> fileUpload(
@RequestParam("file") CommonsMultipartFile file,
HttpSession session, HttpServletRequest request,
HttpServletResponse response) throws Exception {
// 清除上次上传进度信息
String saveDirectoryPath = Constants.UPLOAD_PLATFORM + "/" + uploadFolderName;
File saveDirectory = new File(saveDirectoryPath);
if (!saveDirectory.exists()) {
saveDirectory.mkdir();
}
// 判断文件是否存在
if (!file.isEmpty()) {
String fileName = file.getOriginalFilename();
file.transferTo(new File(saveDirectory, fileName));
}
return State.OK.toMap();
}
public enum State {
OK(200, "上传成功"),
ERROR(500, "上传失败"),
OVER_FILE_LIMIT(501, "超过上传大小限制"),
NO_SUPPORT_EXTENSION(502, "不支持的扩展名");
private int code;
private String message;
private State(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
public Map<String, Object> toMap() {
Map<String, Object> map = new HashMap<String, Object>();
map.put("code", this.code);
map.put("message", this.message);
return map;
}
}
相关文章推荐
- java JNI
- Java学习笔记九(泛型)
- 尚学堂Spring视频教程(六):AOP Annotation
- 如何将基于Struts2的JavaWeb项目部署到阿里云服务器上
- #Eclipse web工程 部署 三种方式 3
- weblogic11_64下的java.lang.ClassCastException: java.sql.Timestamp cannot be cast to java.sql.Date
- Java Serializable系列化与反系列化
- java调用其他程序读取文件前对文件进行排序
- 关于如何用JAVA代码生成随机图片验证码
- java学习笔记--如何用jar命令对java工程进行打包
- Eclipse ctrl+shift+r
- Java项目的*.java 文件打开后注释乱码问题解决办法。
- Java学习笔记八(反射)
- java实现多级文件夹复制
- MyEclipse10 中的两种FreeMarker插件的安装与配置
- JAVA 中 static 的理解
- 使用javassist动态注入代码
- 【SpringMVC之FreeMark(二)】FreeMark指令使用教程
- 【SpringMVC】下载功能
- [java]用HSSFWorkbook来读取excel的内容