第一步:配置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和注释配置来实现文件上传
分享到:
相关推荐
1. **文件大小限制**:根据业务需求,你可以调整`CommonsMultipartResolver`中的`maxUploadSize`以限制上传文件的大小。 2. **文件类型检查**:在Controller中检查文件类型,只允许特定类型的文件上传。 3. **错误...
在Spring MVC框架中,文件上传是一项常见的功能,但同时也需要考虑一些安全性与性能的问题,比如文件大小限制和文件类型检查。本篇文章将深入探讨如何在Spring MVC中设置这些限制,并解决超大文件上传可能导致的bug...
Spring MVC 是一个强大...接下来,我们需要配置一个`CommonsMultipartResolver`作为Spring MVC的多部分解析器,以支持文件上传。在`web.xml`或Spring Boot的配置文件中,添加以下配置: ```xml <!-- web.xml 示例 --> ...
通过以上步骤,我们可以利用Spring MVC和`CommonsMultipartResolver`实现文件上传功能。这个过程涉及了Spring的依赖注入、HTTP请求处理、文件I/O以及错误处理等多个核心概念,对于理解和实践Spring MVC应用程序的...
在Spring MVC中实现文件上传,首先需要在`web.xml`配置文件中添加MultipartResolver,通常是`CommonsMultipartResolver`,这是Spring MVC处理文件上传的关键组件。它依赖于Apache Commons FileUpload库,需要将其...
1. **文件大小限制**:限制上传文件的大小,防止DoS攻击。 2. **文件类型检查**:验证上传文件的类型,防止恶意文件如`.jsp`、`.php`等被执行。 3. **文件名安全**:避免使用用户提供的文件名,防止路径遍历攻击。 4...
在Spring MVC框架中,文件上传是一项常见的功能,它允许用户通过Web界面上传本地文件到服务器。这篇文章将深入探讨如何在Spring MVC中实现文件上传,并基于提供的链接和文件名称列表进行详细解析。 首先,理解文件...
- `maxUploadSize`属性限制了单个文件的最大上传大小为100MB(104857600字节)。 - `maxInMemorySize`属性设置了文件在内存中的最大大小为4KB(4096字节),超过该值后将被写入临时文件。 2. **请求映射器**: -...
在本文中,我们将深入探讨如何使用Spring MVC框架与uploadify插件进行文件上传,特别是针对图片的上传。Spring MVC是Spring框架的一部分,专门用于构建Web应用程序,而uploadify是一款前端JavaScript插件,使得用户...
Spring MVC 是一个强大的...在Spring MVC中,文件上传主要依赖于`CommonsMultipartResolver`,这是Apache Commons FileUpload库的一个包装器。为了启用文件上传,我们需要在Spring的配置文件中添加以下配置: ```xml ...
为了处理文件上传,我们需要在Spring MVC的配置文件(如`spring-mvc.xml`)中添加MultipartResolver,例如使用`CommonsMultipartResolver`: ```xml <bean id="multipartResolver" class="org.springframework.web....
在文件上传过程中,Spring MVC会调用`CommonsMultipartResolver`解析多部分请求,创建`MultipartFile`对象。`MultipartFile`接口提供了获取文件名、大小、是否为空以及读取内容的方法。在实际应用中,我们还需要...
在Spring MVC的配置中,需要设置最大上传文件大小和总请求大小,例如: ```xml <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="...
1. **配置MultipartResolver**:为了处理文件上传,Spring MVC需要一个`MultipartResolver`,通常是`CommonsMultipartResolver`,它是基于Apache Commons FileUpload库的。在Spring配置文件中,我们需要添加以下配置...
3. **异常处理**:当上传的文件大小超过了配置的最大值时,Spring MVC会抛出`MaxUploadSizeExceededException`异常。可以通过配置异常处理器来处理这种情况,并跳转到特定的错误页面。 ```xml ...
在这个配置中,`defaultEncoding`属性确保了正确解析表单数据,`maxUploadSize`限制了上传文件的大小,超出此限制将抛出异常。`uploadTempDir`指定了临时存储上传文件的目录,当文件被处理完后,这些临时文件会自动...
Spring MVC作为Spring框架的一部分,提供了强大的MVC(模型-视图-控制器)架构支持,而Mybatis则是一个轻量级的持久层框架,两者结合可以高效地处理文件上传和数据库操作。 首先,我们需要在Spring MVC的配置文件中...
此外,为了处理可能出现的文件大小限制、文件类型验证等需求,你可以在控制器方法中添加额外的逻辑。例如,你可以检查文件的大小,或者使用`file.getContentType()`来验证文件类型。 这个"SpringMVC文件上传Demo...
此外,为了确保文件上传的安全性和稳定性,我们可能还需要配置Spring MVC的MultipartResolver,比如使用`CommonsMultipartResolver`,设置最大文件大小和总的上传大小限制。这可以在Spring的配置文件中完成: ```...
在Spring MVC框架中,文件上传是一项常见的功能,用于接收用户通过表单提交的文件数据。在本主题中,我们将深入探讨如何使用Spring MVC的`fileupload`模块来实现这一功能,以及相关的源码分析。 首先,我们需要理解...