参考:[url]http://blog.youkuaiyun.com/yyywyr/article/details/44571353[/url]
[url]http://blog.youkuaiyun.com/a1314517love/article/details/24183273[/url]
[list]
[*]第一步:配置spring
[/list]
[list]
[*]第二步:在上传action中自己捕获异常
[/list]
[list]
[*]第三步:界面
[/list]
[list]
[*]第四步:接收form表单普通的参数
[/list]
其方法为:将HttpServletRequest req强转成MultipartHttpServletRequest req后,通过 req.getParameter("id");获取
参考:[url]http://blog.youkuaiyun.com/z69183787/article/details/44152287[/url]
spring mvc文件上传(单个文件上传|多个文件上传)
[url]http://www.cnblogs.com/dengfukui/p/6252798.html[/url]
[url]http://blog.youkuaiyun.com/a1314517love/article/details/24183273[/url]
[list]
[*]第一步:配置spring
[/list]
<!-- 上传使用的多部分文件配置 -->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="defaultEncoding" value="UTF-8"/>
<!--1024*1024*10000即1000M-->
<property name="maxUploadSize" value="200000" />
<property name="maxInMemorySize" value="40960" />
<!--resolveLazily属性启用是为了推迟文件解析,以便在UploadAction 中捕获文件大小异常 -->
<property name="resolveLazily" value="true"/>
</bean>
[list]
[*]第二步:在上传action中自己捕获异常
[/list]
@RequestMapping
public void execute(
@RequestParam(required = false) MultipartFile file,
@RequestParam(value = "file_info_id", required = false) Integer fileInfoId,
ModelMap model, HttpServletRequest request) throws Exception {
if (file == null || file.isEmpty()) {
return;
}
byte[] bytes = file.getBytes();
……………………
………………
}
@ExceptionHandler(Exception.class)
public ModelAndView handleException(Exception ex,HttpServletRequest request) {
Map<Object, Object> model = new HashMap<Object, Object>();
if (ex instanceof MaxUploadSizeExceededException){
model.put("errors", "文件应不大于 "+
getFileKB(((MaxUploadSizeExceededException)ex).getMaxUploadSize()));
} else{
model.put("errors", "不知错误: " + ex.getMessage());
}
return new ModelAndView("/common/file/upload", (Map) model);
}
private String getFileKB(long byteFile){
if(byteFile==0)
return "0KB";
long kb=1024;
return ""+byteFile/kb+"KB";
}
[list]
[*]第三步:界面
[/list]
<script type="text/javascript">
$(function() {
$('#frmupload1').submit(function() {
if ($('#file1').val() == '') {
alert('请选择上传导入文件!');
$('#file1').focus();
return false;
}else{
if(!isvalidatefile($('#file1').val()))
return false;
}
});
$('#frmupload2').submit(function() {
if ($('#file2').val() == '') {
alert('请选择上传导入文件!');
$('#file2').focus();
return false;
}else{
if(!isvalidatefile($('#file2').val()))
return false;
}
});
});
function isvalidatefile(obj) {
var extend = obj.substring(obj.lastIndexOf(".") + 1);
//alert(extend);
if (extend == "") {
} else {
if (!(extend == "xls" )) {
alert("请上传后缀名为xls(Excel2003)或xlsx(Excel2007)的文件!");
return false;
}
}
return true;
}
<body>
<h1>上传文件</h1>
<form action="" method="post" enctype="multipart/form-data" onsubmit="return checkSubmit();">
<p>请选择文件:</p>
<p ${not empty errors ?"style='color : red;'":""}>${errors}</p>
<input type="file" name="file" id="file"/> <input type="submit" value="确定"/>
</form>
</body>
[list]
[*]第四步:接收form表单普通的参数
[/list]
其方法为:将HttpServletRequest req强转成MultipartHttpServletRequest req后,通过 req.getParameter("id");获取
HttpServletRequest request;
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
MultipartFile file = multipartRequest.getFile("file");
String id = multipartRequest.getParameter("id");
String fileName = file.getOriginalFilename();
参考:[url]http://blog.youkuaiyun.com/z69183787/article/details/44152287[/url]
spring mvc文件上传(单个文件上传|多个文件上传)
[url]http://www.cnblogs.com/dengfukui/p/6252798.html[/url]