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_RequestPart_文件上传_example.rar
基于springmvc框架的上传文件程序,可运行,java开发语言
实现springmvc 多文件上传,可以获取返回值,进行数据库的操作
springmvc_02 高级参数绑定 异常处理 文件上传.docx。
springmvc3.0,完全基本注解,简单易用;与springmvc结合的文件上传,配置一下即可,非常简单
SpringMVC文件上传war包
springmvc上传文件controller,vue
springMvc 文件上传,springMvc 支持单文件和多文件上传,
# 人事管理系统 使用JavaEE开发,基于SpringMVC+Mybatis框架,该项目包含了用户管理、部门管理、职位管理、员工管理、公告管理、下载中心等多个模块,页面使用...下载中心包含了 Spring MVC的文件上传、下载等功能
SpringMVC+Ajax异步文件上传+短视频背景+a标签绑定文件域
SpringMVC单文件上传、多文件上传、文件列表显示、文件下载,具体效果和过程看博文http://blog.csdn.net/evankaka/article/details/45826697
1.简单的ibatis多表级联 2.基于cxf的restful接口开发,包括文件上传(文档,图片等)接口 3.redis缓存服务,通过spring的aop来控制 4.file表太大,我给清空了,测试的是注意报错 5.本人测试通过,有问题可交流
在上一篇SpringMVC基础教程的源码基础上增加了文件上传,多文件上传
springMVC 上传文件方式springMVC 上传文件方式springMVC 上传文件方式
springmvc框架的文件上传 下载:自己整理的一些错误:404等
SpringMVC文件上传与下载的实现,包括UploadController和DownloadController
基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于springmvc实现文件上传下载 基于AOP的日志功能基于...
JavaEE企业级开发-----SpringMVC实现 文件的上传下载实验报告
springmvc 上传下载文件,支持 ajax,form 提交,支持 multiple 方式上传文件
SpringMVC框架实现文件的上传和下载项目案例源码