内容简介:支持文件上传是web程序最基本和常见的需求。在早期的servlet规范中,实现文件上传需要使用第三方库或者复杂的输入处理。针对此问题,servlet现在以通用和可移植的方式帮助提供了一个可行的解决方案。servlet技术现在提供开箱即用的上传文件方法,所以任何实现规范的web容器都能通过HttpServletRequest 对象解析multipart请求和生成有效的mime附件。一个新的注解,javax.servlet.annotation.MultipartConfig,用来表明需要multipart/f
支持文件上传是web程序最基本和常见的需求。在早期的servlet规范中,实现文件上传需要使用第三方库或者复杂的输入处理。针对此问题,servlet现在以通用和可移植的方式帮助提供了一个可行的解决方案。servlet技术现在提供开箱即用的上传文件方法,所以任何实现规范的web容器都能通过HttpServletRequest 对象解析multipart请求和生成有效的mime附件。
一个新的注解,javax.servlet.annotation.MultipartConfig,用来表明需要multipart/form-data类型请求的定义上。使用@MultipartConfig注解的servlet都可以通过调用 request.getPart(String name)或request.getParts()方法获取一个给定的multipart/form-data请求中的Part构件。
@MultipartConfig注解
@MultipartConfig注解提供下面这些可选的属性:
- location 操作系统上的一个绝对路径。location属性不支持基于web上下文的相对路径。location用来在处理Part时存储临时文件或者是文件大小超过fileSizeThreshold设置的值。默认location是“”
- fileSizeThreshold 存储在硬盘上的临时文件的大小。默认是0byte
- MaxFileSize 允许上传的最大文件大小,单位是byte。如果上传的文件超过限制,web容器将抛出异常(IllegalStateException)。默认设置是不限制大小。
- maxRequestSize 一个 multipart/form-data请求能携带的最大字节数。
例如,@MultiPartConfig可以如下构造:
@MultipartConfig(location="/tmp", fileSizeThreshold=1024*1024, maxFileSize=1024*1024*5, maxRequestSize=1024*1024*5*5)
代替使用 @MultipartConfig注解在你的upload servlet中硬编码这些属性,需要在web.xml中作为一个子节点添加下面的节点:
<multipart-config> <location>/tmp</location> <max-file-size>20848820</max-file-size> <max-request-size>418018841</max-request-size> <file-size-threshold>1048576</file-size-threshold> </multipart-config>
getParts和getPart方法
servlet规范定义了HttpServletRequest的两个附加方法:
- Collection<Part> getParts()
- Part getPart(String name)
request.getParts()方法返回所有Prat集合。如果你有超过一个文件类型的输入,将返回多个Part对象。因为所有Part对象都被命名, getPart(String name)方法用来访问特定的Part对象。另外,getParts()返回Iterable<Part>可以用来遍历所有Part。
javax.servlet.http.Part是简单的,提供每个Part的自省方法。方法列表:
- 获取Part的名称、大小、类型等
- 查询随Part提交的Header信息
- 删除一个Part
- 输出Part到磁盘
例如,Part 接口提供write(String filename) 方法以特定名称写入到文件中。文件可以使用@MultipartConfig注解定义的location直接保存,在fileupload示例中,location是由表达中的属性定义的。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
他们以为自己很厉害:12个企业管理陷阱
[法] 克里斯蒂娜•凯德朗 / 王倩 / 人民邮电出版社 / 2018-11 / 69.00元
本书讲述了震惊世界的150个企业管理失败案例,并从产品与服务定位、技术 创新、广告与营销策略、跨文化发展、融资战略到企业文化与员工管理等众多角度, 揭露了商场各种败局的内幕。作者以风趣的笔触讲述了国际知名企业和商界精英们 的惨痛教训,又以专业角度解读了这些失利背后的经济学和管理学因素,给读者带 来了启示。一起来看看 《他们以为自己很厉害:12个企业管理陷阱》 这本书的介绍吧!