springMVC文件上传
增加上传组件依赖:
In the case of the CommonsMultipartResolver
, you need to use commons-fileupload.jar
.
apache-commons-io.jar
apache-commons-fileupload.jar
<!-- fileupload --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.4</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</version> </dependency>
配置文件上传相关配置,springMVC.xml配置如下:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <!-- 自动注册DefaultAnnotationHandlerMapping与AnnotationMethodHandlerAdapter --> <!-- 两个bean 是spring MVC为@Controllers分发请求所必须的 --> <mvc:annotation-driven/> <!-- 配置需要被扫描的包 --> <context:component-scan base-package="com.gc.springmvc.controller"/> <!-- 配置对静态资源文件的访问不被过滤 WebContent/resources目录中的文件都能访问 --> <mvc:resources location="/resources/" mapping="/resources/**"/> <!-- 配置返回的数据如何呈现:前缀+逻辑视图+后缀 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/jsp/"/> <property name="suffix" value=".jsp"/> </bean> <!-- 文件上传 --> <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <!-- Default is ISO-8859-1 --> <property name="defaultEncoding" value="UTF-8"/> <!-- Default is 10240 --> <property name="maxInMemorySize" value="10240"/> <!-- -1 indicates no limit (the default) --> <property name="maxUploadSize" value="100000"/> <!-- javax.servlet.context.tempdir(the default) 临时文件存放目录,不是最终目录!--> <property name="uploadTempDir" value="/tempdir"/> </bean> </beans>
上传页面
<form action="fileupload" method="post" enctype="multipart/form-data"> 文件名称: <input type="text" name="name"/> <br/> 选择文件: <input type="file" name="file"/> <br/> <input type="submit"/> </form>
上传控制器
package com.gc.springmvc.controller; import java.io.File; import java.util.Date; import javax.servlet.ServletContext; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.context.ServletContextAware; import org.springframework.web.multipart.commons.CommonsMultipartFile; import org.springframework.web.servlet.view.InternalResourceViewResolver; @Controller public class FileUploadController implements ServletContextAware{ private ServletContext servletContext; public void setServletContext(ServletContext servletContext) { this.servletContext = servletContext; } /** * 文件上传 * @param assignedName 为文件指定新的名称 * @param file 上传的文件 * @return */ @RequestMapping(value={"fileupload"}, method=RequestMethod.POST) public String fileupload(@RequestParam("name")String assignedName,@RequestParam("file")CommonsMultipartFile file) { String viewName = "uploadSuccess"; if(!file.isEmpty()) { //通过servletContext获取到文件的绝对路径 String realPath = servletContext.getRealPath("/upload"); System.out.println("文件被保存到:"+realPath); System.out.println("指定的名称:"+assignedName); String originalFileName = file.getOriginalFilename(); System.out.println("原始名称:"+originalFileName); String fileType = originalFileName.substring(originalFileName.lastIndexOf(".")); System.out.println("文件类型:"+fileType); File targetFile = new File(realPath, assignedName+"-"+new Date().getTime()+fileType); try { file.getFileItem().write(targetFile); } catch (Exception e) { e.printStackTrace(); viewName = "uploadFailure"; }; } //重定向 return InternalResourceViewResolver.REDIRECT_URL_PREFIX+viewName; } /** * 返回成功视图 */ @RequestMapping(value="uploadSuccess") public String uploadSuccess() { return "uploadSuccess"; } /** * 返回失败视图 */ @RequestMapping("uploadFailure") public String uploadFailure() { return "uploadFailure"; } }
相关推荐
通过以上步骤,我们可以构建一个完整的SpringMVC文件上传系统。在实际项目中,可能还需要集成其他功能,如文件预览、下载、删除等,以满足更复杂的需求。了解并掌握这些知识点,对于提升SpringMVC应用的开发能力至关...
"SpringMVC_RequestPart_文件上传_example.rar"这个压缩包文件很可能是包含一个示例项目,演示了如何在Spring MVC中实现文件上传功能。我们将深入探讨Spring MVC中的文件上传,以及与之相关的知识点。 首先,Spring...
总的来说,"SpringMVC_Upload.rar_shipvu7_springmvc_springmvc upload"示例涉及了Spring MVC框架下的多文件上传、返回值处理以及与数据库交互的关键知识点。通过学习和实践这些内容,你可以构建出健壮的Web应用程序...
**SpringMVC_9_文件上传**(共9页):这部分内容介绍了如何使用SpringMVC实现文件上传功能,包括文件上传的原理、配置MultipartResolver等组件、处理上传文件的控制器方法等。 **SpringMVC_10_拦截器**(共7页):...
【课程大纲】 SpringMVC_1_开发环境搭建 共41页.pptx SpringMVC_2_HelloWorld 共19页.pptx SpringMVC_3_方法入参 共41页.pptx ...SpringMVC_9_文件上传 共9页.pptx SpringMVC_10_拦截器 共7页.pptx
### Java SpringMVC 文件上传知识点详解 #### 一、知识点概览 本篇文章将围绕“Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_9_...希望本文能够帮助大家更好地掌握SpringMVC文件上传的相关技术要点。
SpringMVC 提供了对文件上传和下载的支持,可以方便地处理用户的文件操作请求。 十一、RESTful API 设计 SpringMVC 也支持 RESTful 风格的 Web 服务,可以通过 @RequestMapping 注解配合 HTTP 方法(GET、POST、PUT...
#### 十、SpringMVC_9_文件上传 - **文件上传配置**:配置MultipartResolver,用于处理文件上传相关的请求。 - **文件上传处理**:使用`MultipartFile`类型参数接收上传的文件。 #### 十一、SpringMVC_10_拦截器 ...
11. **MultipartResolver**:处理multipart类型的请求,通常用于文件上传。 12. **Message Converters**:用于在HTTP请求和响应之间转换数据,如JSON、XML等格式。 13. **Aspect-Oriented Programming (AOP)**:...
【课程大纲】 Java基础 1.java入门知识 Java基础 10.枚举与泛型 Java基础 11....SpringMVC_9_文件上传 struts2_1_入门介绍 struts2_10_转换器 struts2_11_插件 struts2_2_Action详解 struts2_3_配置参数详解
这些细节在压缩包中的"springMVC文件上传.java"文件中应该有具体实现。 此外,前端界面也需要配合后端提供文件选择和提交的功能,通常使用HTML的`<form>`元素配合`enctype="multipart/form-data"`属性,以及`...
### Spring MVC 高级参数绑定、异常处理与文件上传详解 #### 一、高级参数绑定 ##### 1.1 高级参数绑定概述 高级参数绑定是Spring MVC框架中的一个重要特性,它允许开发者以更简洁的方式处理HTTP请求中的参数。在...
4. **Springmvc3实现文件上传**:文件上传是Web开发中的常见需求,这部分可能讲解了如何使用Spring MVC 3来处理文件上传,包括接收文件、存储文件、处理异常等。 5. **使用SpringMVC(spring3_0)自带的json**:这...
对于"springmvc_controller_02"这个压缩包,可能包含了更具体的实践案例,比如处理文件上传、表单验证、异步请求等场景。通过学习和实践这些案例,你可以更深入地理解和掌握Spring MVC中的Controller使用。
在这个场景中,Spring MVC提供了一种强大的工具,帮助开发者构建RESTful API、处理表单提交、处理上传文件等功能。Web开发还包括HTML、CSS和JavaScript等前端技术,它们负责用户界面的设计和交互。Spring MVC与这些...
11. **文件上传与下载**:SpringMVC提供了处理文件上传和下载的API,使得在Web应用中实现这些功能变得简单。 12. **RESTful风格**:SpringMVC支持RESTful编程风格,可以创建符合HTTP规范的URL,使API更易于理解和...
此外,它还支持数据绑定、国际化、验证和文件上传等功能,提高了开发效率。 2. **Spring框架**:Spring是Java领域最广泛使用的框架之一,提供了一整套企业级应用的解决方案。它包括依赖注入(DI)、面向切面编程...
综上所述,这个博客项目涵盖了SpringMVC框架的应用,前后端交互,数据库设计,文件上传功能以及可能的Git版本控制。对于学习Java Web开发,尤其是SpringMVC的初学者来说,这是一个很好的实践案例。
struts2_8_文件上传与下载 共20页.pptx struts2_9_拦截器 共32页.pptx struts2_10_转换器 共22页.pptx struts2_11_插件 共51页.pptx struts2_表单校验失败跳input视图问题 共13页.pptx SpringMVC_1_开发环境搭建 共...
SpringMVC文件上传war包