mint mvc文件上传功能——使用篇
2014-10-19 22:32
316 查看
为了不打击大家的积极性,暂时只着重讲用法,原理方面暂时不讲太多。
处理文件上传请求的action方法需要添加MultipartConfig注解,MultipartConfig有三个参数:
attributeName:为了在action内有办法获取到上传的文件,mint mvc把这些上传的文件都封装在一个数组里,这个数组用request对象的setAttribute方法,以指定的“attributeName”保存到request对象里。最后,可以在action内,用request.getAttribute()方法获得该数组。在mint mvc的参数博文中说过,mint mvc会自动的用HttpServletRequest的属性初始化action参数,所以只要在action上声明一个以attributeName命名,类型为MultipartParameter[]的参数,就可以轻松得到封装有文件信息的数组
limitSize:限制每个上传文件(包括非文件参数)的大小,单位是B。如果上传过程中,发现有文件或参数超过此限制,上传过程将会终止
tempFilePath:临时文件的保存路径。临时文件的命名格式是:UUID_真实文件名
mint mvc的上传功能除了可以接受文件外,还可以接收普通字段。普通字段会封装在request中,可以通过request的getParameters方法获取。
选择文件:
客户端返回结果:
上传成功的文件:
本demo下载地址:http://git.oschina.net/895925636/mintdemo/tree/master
项目地址:http://git.oschina.net/895925636/mint-mvc
收录地址:http://www.oschina.net/p/mint-mvc
博客地址:http://www.wemakers.net/home/blog?cate=1001
(完)
配置web.xml
文件上传需要用到servlet3的异步处理功能。需要在web.xml配置文件中加入异步支持声明(注释处):<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd" version="2.4"> <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>mint.mvc.core.ServiceServlet</servlet-class> <!-- 开启servlet3.0的异步处理功能 --> <async-supported>true</async-supported> <init-param> <param-name>actionPackages</param-name> <param-value>demo;</param-value> </init-param> <load-on-startup>0</load-on-startup> </servlet> <servlet-mapping> <servlet-name>dispatcher</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>
编写上传文件的action
文件上传的action:package demo; import mint.mvc.annotation.BaseMapping; import mint.mvc.annotation.Mapping; import mint.mvc.core.upload.MultipartConfig; import mint.mvc.core.upload.MultipartParameter; @BaseMapping("/upload") public class UploadAction { @MultipartConfig(attributeName = "params", limitSize = 1024*1024*1024, tempFilePath = "D:/upload") @Mapping(urls="/index", method="post") public String index(MultipartParameter[] params, String author){ String fileParam = ""; String commonParam = ""; if(params != null){ for(MultipartParameter part : params){ if(part.isFile()){ fileParam += part.getTempFile().getAbsolutePath()+"<br/>"; } else { commonParam += (part.getName()+":"+part.getParameterValue())+"<br/>"; } } } System.out.println(author); return fileParam+commonParam; } }
处理文件上传请求的action方法需要添加MultipartConfig注解,MultipartConfig有三个参数:
attributeName:为了在action内有办法获取到上传的文件,mint mvc把这些上传的文件都封装在一个数组里,这个数组用request对象的setAttribute方法,以指定的“attributeName”保存到request对象里。最后,可以在action内,用request.getAttribute()方法获得该数组。在mint mvc的参数博文中说过,mint mvc会自动的用HttpServletRequest的属性初始化action参数,所以只要在action上声明一个以attributeName命名,类型为MultipartParameter[]的参数,就可以轻松得到封装有文件信息的数组
limitSize:限制每个上传文件(包括非文件参数)的大小,单位是B。如果上传过程中,发现有文件或参数超过此限制,上传过程将会终止
tempFilePath:临时文件的保存路径。临时文件的命名格式是:UUID_真实文件名
mint mvc的上传功能除了可以接受文件外,还可以接收普通字段。普通字段会封装在request中,可以通过request的getParameters方法获取。
文件上传演示
文件上传的页面:<!DOCTYPE html> <meta charset="UTF-8"> <form action="upload" enctype="multipart/form-data" method="post" target="demo_iframe"> 价格:<input type="text" name="price" value="50"/><br/> 作者:<input type="text" name="author" value="琼羽"/><br/> 书籍:<input type="file" name="books"/><br/> 书籍:<input type="file" name="books"/><br/> 书籍:<input type="file" name="books"/><br/> <button type="submit">上传</button> </form>
选择文件:
客户端返回结果:
上传成功的文件:
本demo下载地址:http://git.oschina.net/895925636/mintdemo/tree/master
项目地址:http://git.oschina.net/895925636/mint-mvc
收录地址:http://www.oschina.net/p/mint-mvc
博客地址:http://www.wemakers.net/home/blog?cate=1001
(完)
相关文章推荐
- 在Servlet中使用开源fileupload包实现文件上传功能 推荐
- [Android开发]Android之使用Http协议实现文件上传功能
- 在Servlet中使用开源fileupload包实现文件上传功能
- 使用WinHttp接口实现HTTP协议Get、Post和文件上传功能
- [CKEditor那点事儿]使用java开发ckeditor的文件上传功能
- 在Servlet中使用开源fileupload包实现文件上传功能
- Android之使用Http协议实现文件上传功能
- [JAVAWEB实战篇]---在Servlet中使用开源fileupload包实现文件上传功能
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
- 使用Flex实现FTP文件上传功能
- Android之使用Http协议实现文件上传功能
- Android之使用Http协议实现文件上传功能
- 在Servlet中使用开源fileupload包实现文件上传功能
- 使用.net FtpWebRequest 实现FTP常用功能 上传 下载 获取文件列表 移动 切换目录 改名
- 使用java开发ckeditor的文件上传功能(一)
- 使用 jquery 的 上传文件插件 uploadify 3.1 配合 java 来做一个简单的文件上次功能。并且在界面上有radio 的选择内容也要上传
- 今天使用jspsmartupload.jar实现上传文件的功能,发现中文乱码,于是总结了下解决方法
- 使用Jquery From插件实现异步上传文件的功能
- 在Servlet中使用开源fileupload包实现文件上传功能
- Struts2 Ajax文件上传功能 使用Jquery.form插件