spring mvc 3.0 实现文件上传功能
————————————————————————————————————————————————————————
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"; //返回失败视图
  }
 }
}
spring mvc 3.0 实现文件上传功能的更多相关文章
- Servlet3.0的文件上传功能
		在Servlet3.0之前,文件上传需要借助于第三方插件,在Servlet3.0之后,Servlet本身开始支持文件上传功能. 获取上传的文件可以通过HTTPServletRequest的getPar ... 
- Spring MVC(四)文件上传
		文件上传步骤 1.写一个文件上传的页面 2.写一个文件上传的控制器 注意: 1.method="post" 2.enctype="multipart/form-data& ... 
- spring mvc框架+  ajax实现 文件上传
		1.前端页面,通过form表单提交,必须设置 enctype="multipart/form-data" 代表form表单在发送到服务器时候编码方式是二进制类型,一般用于图片.mp ... 
- Spring MVC—拦截器,文件上传,中文乱码处理,Rest风格,异常处理机制
		拦截器 文件上传 -中文乱码解决 rest风格 异常处理机制 拦截器 Spring MVC可以使用拦截器对请求进行拦截处理,用户可以自定义拦截器来实现特定的功能,自定义的拦截器必须实现HandlerI ... 
- 基于Spring Mvc实现的Excel文件上传下载
		最近工作遇到一个需求,需要下载excel模板,编辑后上传解析存储到数据库.因此为了更好的理解公司框架,我就自己先用spring mvc实现了一个样例. 基础框架 之前曾经介绍过一个最简单的spring ... 
- Spring +SpringMVC  实现文件上传功能。。。
		要实现Spring +SpringMVC 实现文件上传功能. 第一步:下载 第二步: 新建一个web项目导入Spring 和SpringMVC的jar包(在MyEclipse里有自动生成spring ... 
- Spring MVC4使用Servlet3 MultiPartConfigElement文件上传实例
		在这篇文章中,我们将使用Spring MultipartResolver 实现 StandardServletMultipartResolver在Servlet3环境中实现单点和多文件上传功能.Spr ... 
- springMVC3.0(文件上传,@RequestMapping加參数,@SessionAttributes,@ModelAttribute,转发,重定向,数值获取,传參,ajax,拦截器)
		1.项目包结构例如以下: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdG90b3R1enVvcXVhbg==/font/5a6L5L2T/fontsiz ... 
- Spring 文件上传功能
		本篇文章,我们要来做一个Spring的文件上传功能: 1. 创建一个Maven的web工程,然后配置pom.xml文件,增加依赖: <dependency> <groupId> ... 
随机推荐
- global constructor
			HQ在要求我们修改code style后,又让我检查并去掉"global constructor". 第一次听说这玩意,就研究了一下.发现网上有人讨论的很精彩,就记下来. “glo ... 
- fc游戏反编译流程
			最近打算玩一下nes游戏,重拾一下6502汇编. 摸索了几天,觉得下面这个反汇编的流程比较好: 用 fceux 载入游戏,选择debug菜单Code/Data Logger,点击Start,稍微玩一下 ... 
- 代码练习之 登陆 PHP会话控制 session cookie
			log.html <html> <head><title>Home Page</title></head> <body> < ... 
- 流媒体播放mime类型添加
			.m3u8 application/x-mpegURL.ts video/MP2T 
- android回调函数
			在我们进行android开发的时候,常常遇到一些回调函数,当中,我们最常常使用的回调就是,当我们对一个组件设置监听的时候,事实上就相对于设置的回调函数.比如: Button btn = (Button ... 
- java写的小脚本,用来受mDNS消息
			太ugly了,但是可以工作,抓了包下来,用前面DNS message structure做了下比较. 代码如下: import java.net.DatagramPacket; import java ... 
- [Spring MVC - 2A] - java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)
			严重: Servlet.service() for servlet [springMVC] in context with path [/ExceptionManageSystem] threw ex ... 
- 【Python 数据分析】jieba文本挖掘
			jieba是一个强大的分词库,完美支持中文分词 安装jieba 使用命令安装 pip install jieba 出现上图表示安装成功了 jieba分词模式 全模式 全模式:试图将句子精确地切开,适合 ... 
- Wireshark-配合tcpdump对Android(安卓)手机抓包
			环境:Windows, 安装真机(可以获取Root权限), adb, Wireshark, tcpdump 原理: 使用 tcpdump 进行抓包, 然后用 Wireshark 进行分析 1.获取手机 ... 
- 让网页自动调用双核浏览器的极速模式(<meta name="renderer" content="webkit">)
			背景:最近做了一个网站,传单服务器之后,每次打开都是乱码,不对啊,我在本地测得明明是排版很整齐啊,然后发现,360用的是“兼容模式”打开的,这就尴尬了,用户一打开就是乱码,这用户体验得有多差!用户可不 ... 
