第一步:配置sping
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!--1024*200即200k-->
<property name="maxUploadSize" value="204800"/>
<!--resolveLazily属性启用是为了推迟文件解析,以便在UploadAction 中捕获文件大小异常-->
<property name="resolveLazily" value="true"/>
</bean>
第二步:在上传action中自己捕获异常
@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";
}
private String getFileMB(long byteFile){
if(byteFile==0)
return "0MB";
long mb=1024*1024;
return ""+byteFile/mb+"MB";
}
第三步:界面
<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>
参考来源:
spring MVC上传文件使用了common.fileupload组件
使用Spring MVC和注释配置来实现文件上传
分享到:
相关推荐
spring mvc文件上传,通过监听器实现进度条
本书共计10章,分别介绍了快速搭建Spring Web应用、精通MVC结构、URL映射、文件上传与错误处理、创建Restful应用、保护应用、单元测试与验收测试、优化请求、将Web应用部署到云等内容,循序渐进地讲解了Spring MVC4...
Spring MVC 文件上传下载 后端 - Java.zip
主要介绍了Spring MVC文件上传大小和类型限制以及超大文件上传bug问题,非常具有实用价值,需要的朋友可以参考下
清晰的注释和简单明了的代码,绝对让你瞬间掌握如何使用ajax上传的的要领,实现举一反三
Spring CommonsMultipartResolver 上传文件,源码中包括spring的注解和视图交互及数据应用,上传文件等
Spring MVC文件上传下载,是http://blog.csdn.net/geloin/article/details/7537425#comments的配套资源。
全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,...
本文详细介绍spring MVC的原理和开发心得体会。
简单的描述了spring mvc的配置示例,不包括注解方法和示例代码
精通Spring MVC 4 中文
全书共计12章,分别从Spring框架、模型2和MVC模式、Spring MVC介绍、控制器、数据绑定和表单标签库、传唤器和格式化、验证器、表达式语言、JSTL、国际化、上传文件、下载文件多个角度介绍了Spring MVC。除此之外,...
spring mvc框架下的文件上传,支持多文件上传,代码完整版,试运行过OK,没有问题。
使用Spring MVC进行文件上传。文章地址:http://blog.csdn.net/a_zhon/article/details/78566149
Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于注解实例Spring MVC 基于...
1.创建第一个 Spring MVC 程序案例 2.Spring MVC @RequestMapping 注解案例 3.Spring MVC 请求参数的获取案例 ...13.Spring MVC 文件的上传与下载案例 14.Spring MVC 拦截器案例 15.Spring MVC 异常处理案例
前几天在网上找springmvc 文件上传显示进度大部分找的都有问题,然后自己结合网上资料写了一个可以实现的功能,现在已经用在向项目中
第2篇是MyBatis技术入门,包括剖析JDBC的弊端、MyBatis的背景介绍、入门程序的编写、配置文件的剖析、高级映射及缓存结构的讲解,最后还介绍了MyBatis与Spring框架的整合。第3篇是Spring MVC技术入门,包括Spring ...