一般情况下,上传文件总是在表单中直接提交到后台,后台接收文件对象后再处理。但是,这样一般会页面跳转了!要达到异步上传,少不了用ajax了,很多ajax封装了优秀的上传控件,这里重点介绍SpringMVC用ajaxfileupload.js控件上传文件的方法,有不足之处还望阅者见谅以及赋予见解。
HTML页面:
<input type="file" name="file" id="fileUpload" />
注意:name="file"中的file要与接收文件的属性名称一致
JS:
data = {
"personId":60,//与之关联的人员的id(不可省略)
"fileId":"fileUpload",//要上传图片文件的type="file" 的id名称(不可省略)
"photoPath":"来源于..",//(可省略)
"description":"图片真漂亮"//(可省略)
}
$.ajaxFileUpload({
url: appPath+"/common/saveImageToByte?personId="+personId+"&photoPath="+photoPath+"&description="+description, //一个表单出来文件之外的其他要保存的数据
secureuri: false, //是否安全提交
fileElementId: data.fileId,//type=file的input的id
dataType: "json", //返回值类型
success: function(data) { //config 即整个json参数
alert("保存图片成功!");
},
error: function() { //服务响应失败处理函数
alert("保存图片请求出错");
}
});
java后台代码:
class ImageEntity{
private long id;
private long personId;
private CommonsMultipartFile file;//用来接收file
private String photoPath;
private String description;
//setter
//getter
}
@RequestMapping(value = "/saveImage", method = RequestMethod.POST)
public void saveImage(ImageInFoVO imageInFoVO,HttpServletResponse response){
CommonsMultipartFile file = ImageEntity.getFile();//获得客户端文件对象
}
这样就可以获得file了!之后想干嘛干嘛!