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用的是“兼容模式”打开的,这就尴尬了,用户一打开就是乱码,这用户体验得有多差!用户可不 ...