spring mvc 支持web应用程序的文件上传功能,是由spring内置的即插即用的MultipartResolver来实现的,这些解析器都定义在org.springframework.web.multipart包里。下面将使用CommonsMultipartResolver解析器来实现简单的文件上传功能。
在web应用程序上下文配置文件中(我的配置文件名为 /WEB-INF/config/app-config.xml)定义如下:
<bean id="multipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 以字节为单位的最大上传文件的大小 -->
<property name="maxUploadSize" value="100000" />
</bean>
加入两个依赖的jar包(spring官网可以下载到对应版本的常用依赖jar包):
com.springsource.org.apache.commons.io-1.4.0.jar
com.springsource.org.apache.commons.fileupload-1.2.0.jar
创建一个HTML表单:
<body>
<h1>
Spring MVC 3.0 文件上传测试
</h1> //action里的html是后缀名,不是HTML文件,用于spring对请求进行拦截判断
<form. method="post" action="upload.html" enctype="multipart/form-data">
<input type="text" name="name" />
<input type="file" name="file" />
<input type="submit" />
</form>
</body>
创建一个controller(控制器)来处理文件上传请求,FileUploadController.java:
@Controller //声明该类为控制器类
public class FileUploadController implements ServletContextAware{ //实现ServletContextAware接口,获取本地路径
private ServletContext servletContext;
public void setServletContext(ServletContext servletContext) { //实现接口中的setServletContext方法
this.servletContext = servletContext;
}
@RequestMapping(value = "/upload", method = RequestMethod.POST) //将文件上传请求映射到该方法
public String handleFormUpload(@RequestParam("name") String name, //设置请求参数的名称和类型
@RequestParam("file") CommonsMultipartFile mFile) { //请求参数一定要与form中的参数名对应
if (!mFile.isEmpty()) {
String path = this.servletContext.getRealPath("/tmp/"); //获取本地存储路径
File file = new File(path + new Date().getTime() + ".jpg"); //新建一个文件
try {
mFile.getFileItem().write(file); //将上传的文件写入新建的文件中
} catch (Exception e) {
e.printStackTrace();
}
return "redirect:uploadSuccess"; //返回成功视图
}else {
return "redirect:uploadFailure"; //返回失败视图
}
}
}
分享到:
相关推荐
springMvc 文件上传,springMvc 支持单文件和多文件上传,
3. **配置SpringMVC以支持文件上传**: 在SpringMVC的配置文件中,我们需要添加`CommonsMultipartResolver`作为默认的`MultipartResolver`,这允许Spring处理`multipart/form-data`类型的请求。同时,我们需要配置...
在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver`,这是Spring提供的一个解析多部分请求的组件。在配置文件中,我们需要添加如下配置启用文件上传: ```xml <!-- 指定最大上传文件大小 --> ...
在HTML页面(通常使用JSP或Thymeleaf)上创建一个表单,设置enctype="multipart/form-data"以支持文件上传。使用标签和元素来让用户选择要上传的文件。 ```html ``` 5. **文件存储** 在`...
接下来,我们需要配置SpringMVC的`DispatcherServlet`,以支持文件上传。在`spring-mvc.xml`或对应的配置类中,需要添加以下内容: ```xml <!-- 指定单个文件的最大大小 --> ...
首先,我们来看SpringMVC中的文件上传。SpringMVC是Spring框架的一部分,它提供了强大的MVC设计模式支持,使得处理HTTP请求变得更加方便。在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver`,这是Spring...
4. **前端页面**:创建一个HTML表单,使用`enctype="multipart/form-data"`来支持文件上传。通过`<input type="file">`标签让用户选择要上传的文件。然后使用AJAX或者传统的HTTP提交方式向后端发送请求。 5. **处理...
在SpringMVC中实现文件上传是一项常见的任务,它允许用户通过表单将本地文件发送到服务器进行存储或处理。这个"SpringMVC文件上传Demo代码"是一个实例,演示了如何配置和使用SpringMVC来实现这一功能。 首先,我们...
总的来说,`SpringMVC`中的文件上传和JSON支持涉及到多个库和组件的协同工作。理解它们的用途和配置方法是开发中必不可少的知识点。正确地引入和配置这些jar包,可以让你在SpringMVC项目中顺利地实现文件上传和JSON...
文件上传过程中可能会出现各种问题,例如文件过大、文件类型不受支持等。因此,需要捕获并处理`MultipartException`及其子类,向用户返回错误信息。 7. **配置** 在SpringMVC的配置中,需要启用MultipartResolver...
首先,在前端页面创建一个`<form>`表单,设置`enctype="multipart/form-data"`以支持文件上传。然后,在后端Controller中定义一个方法,接收`MultipartFile`类型的参数。例如: ```java @PostMapping("/upload") ...
在HTML页面中,创建一个`<form>`元素,并设置`enctype="multipart/form-data"`,表示这是一个支持文件上传的表单。此外,使用`<input type="file">`标签来让用户选择要上传的文件。 4. **控制器处理** 在...
本教程将深入讲解如何利用SpringMVC实现文件上传和下载功能,以及如何实现应用的国际化。下面我们将详细探讨这些知识点。 **一、SpringMVC文件上传** 在SpringMVC中,文件上传主要依赖于`CommonsMultipartResolver...
- 配置Spring MVC的`CommonsMultipartResolver`解析器以支持文件上传,需要在`web.xml`或Spring配置文件中添加相关配置。 2. **Ajax文件上传**: - 使用jQuery的`$.ajax()`或`$.formData()`方法,可以发送异步...
1. **配置MultipartResolver**:SpringMVC默认不支持文件上传,我们需要添加`CommonsMultipartResolver`作为解析器。在`web.xml`中配置`DispatcherServlet`时,添加`multipart-config`元素设置最大上传文件大小。...
总的来说,Spring MVC提供了处理文件上传和下载的强大支持,结合Java内置的压缩功能,我们可以轻松地实现文件上传、下载和压缩功能。在实际项目中,需要注意文件安全、性能优化以及异常处理等问题,以确保服务的稳定...
前端页面需要使用`enctype="multipart/form-data"`来支持文件上传。以下是一个简单的HTML表单示例: ```html 上传文件 ``` 用户选择文件后,点击提交按钮,浏览器会发送multipart/form-data请求到服务器。 *...
2. **表单**: 创建一个HTML表单,设置`enctype="multipart/form-data"`以支持文件上传。 ```html 上传"/> ``` 3. **控制器**: 在SpringMVC的Controller中,使用`@RequestParam("file") MultipartFile file`...
在SpringMVC的配置文件中,我们需要启用多部分文件上传的支持,添加以下代码到`<mvc:annotation-driven>`标签内: ```xml <!-- 设置上传文件的最大大小 --> ...
总结来说,Spring MVC提供了便利的多文件上传支持,通过`CommonsMultipartResolver`解析multipart请求,并通过Controller处理文件上传。开发者需要关注文件安全、异常处理以及依赖管理,确保功能的稳定和安全。通过...