博主小白,贴出一些成功的代码,作为记录,不喜勿喷。
没做过调查和测试,但以下代码在Spring3.X及以后的版本里都是能用的吧。
代码如下:
1. 表单,仅实现功能,需要改样式则自行百度:
<form action="<%=mapPath%>/readIn" id="uploadForm" enctype="multipart/form-data">
<input type="file" value="选择文件" id="file" name="file">
<input type="button" onClick="uploadFile()" value="上传">
</form>
2. 然后是JS,使用AJAX异步上传文件:
function uploadFile(){
var file = document.getElementById("file").value;
if(file==null || file==""){
alert("请选择文件!");
return ;
}
var formData = new FormData($("#uploadForm")[0]);
$.ajax({
url:'<%=path%>/sysMgr/readIn',
type:'POST',
data: formData,
async: false,
cache: false,
contentType: false,
processData: false,
success:function(resultdata){
if(resultdata){
$.messager.alert('操作成功','上传文件成功!','info',function(){ });//基于easyui的消息窗口
}else{
$.messager.alert('操作失败','上传文件失败!','error',function(){ });
}
}
});
}
3. 后台Java代码,接收文件:
@RequestMapping("readIn")
@ResponseBody
public boolean readIn(MultipartFile file, HttpServletRequest request) { // 请求参数一定要与form中的参数名对应
if (!file.isEmpty()) {
System.out.println(file.getSize()); //打印文件大小
return true;
} else {
return false; // 返回失败视图
}
}
<!-- 上传文件拦截,设置最大上传文件大小 10M=10*1024*1024(B)=10485760 bytes -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="10485760" />
</bean>
附:html效果是这样的。。。