spring MVC笔记4——文件上传
来源:互联网 发布:youtube出现网络问题 编辑:程序博客网 时间:2024/04/29 23:09
一、上传文件架包
上传文件需要添加两个架包:
二、上传文件解析器:
DispatcherServlet本身并不知道如何处理multipart的表单数据。这里需要一个multipart解析器把POST请求的multipart数据中抽取出来,这样
DispatcherServlet就能将其传递给我们的控制器。
在spring_mvc.xml配置上传文件解析器:
<beanid="multipartResolver"class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<propertyname="defaultEncoding"value="UTF-8"/>
<propertyname="maxUploadSize"value="1048576"></property>
</bean>
注意,multipart解析器的bean ID是有意义的。当DispatcherServlet查找multipart解析器的时候,它将会查找ID为multipart的解析器bean,如
果multipart解析器是其他ID的话,DispatcherServlet将会忽略它。
三、添加文件上传域
大多数的表单域都是文本数据,所以能够很容易地通过名称-值提交到服务器中。事实上,典型的提交还会带有一个application/x-www-
form-urlencoded这样的内容类型并将表单上的名字-值以&符合分隔。
但文件上传的内容一般都是二进制的文件,不适合这种名字-值的格式。这里选择的内容类型是multipart/from-data。其jsp代码:
<body>
<formaction="/springMVC/springController/upload"
enctype="multipart/form-data"
method="post">
选择文件<inputtype="file"name="file"><br>
<inputtype="submit"value="提交">
</form>
</body>
注意:这里的提交方式必须是post,否则会出错
四、保存文件
在springController中添加upload()方法:
@RequestMapping(value="/upload")
public String upload(HttpServletRequest request, HttpServletResponse response) {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver(request.getSession().getServletContext());
if(multipartResolver.isMultipart(request)){
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
Iterator<String> iter = multipartRequest.getFileNames();
while(iter.hasNext()){
MultipartFile file = multipartRequest.getFile((String)iter.next());
String fileName =file.getOriginalFilename();
String path ="D:/"+fileName;
File localFile = new File(path);
try {
file.transferTo(localFile);
}catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return"/helloWorld";
}
CommonsMultipartResolver是一个解析器,这里new一个解析器解析request的内容。multipartResolver.isMultipart(request)是判断request的内容
是否有multipart类型。MultipartHttpServletRequest是spring自带的用于解析文件的request。multipartRequest.getFileNames()是拿取request的所
有文件名,然后通过迭代器得到相应的文件,MultipartFile就是定义拿到的对应的上传文件。接着定义一个文件目录用于指定保存上传
文件的位置。file.transferTo(localFile)就是将上传文件保存到指定的目录。
- spring MVC笔记4——文件上传
- 【Spring MVC】——普通文件上传
- 【spring mvc】——fastdfs文件上传
- Spring MVC 学习笔记 八 文件上传
- 【工作笔记】Spring mvc多文件上传
- spring mvc 文件上传
- spring MVC 文件上传
- Spring MVC文件上传
- Spring MVC文件上传
- spring mvc 文件上传
- Spring mvc 文件上传
- spring mvc 文件上传
- spring mvc 上传文件
- spring mvc 上传文件
- spring mvc 文件上传
- spring mvc 上传文件
- spring mvc文件上传
- Spring MVC 文件上传
- linux内核配置编译安装(X86)
- 2014-第九周项目一----<<,>>的运算符重载
- 编码社区推荐
- 实际数
- 向左旋转k个字符vs字符串中单词的逆转
- spring MVC笔记4——文件上传
- jQuery中blur和focus事件的应用
- 计算彩色的BGR图像的直方图
- JSON 数据转换
- 关于配置tnsnames来使用PLSQL连接数据库
- LR 连接数据库设置参数
- RotateAnimation类:旋转变化动画类
- Hibernate – Dynamic-Update Attribute Example
- Excel 2007打开csv文件时的各种问题