- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
20121227 周四
文件的上传和下载
1. What is 文件上传? what is 文件下载?
文件上传:用户通过浏览器向服务器提交文件,并由服务器保存
文件下载:用户通过浏览器从服务器上得到一些文件数据,并在浏览器端保存
2. Why use 文件上传? Why use 文件下载?
web应用功能需要
3. How 实现文件上传?
** 实现文件上传的流程
1、在jsp页面添加form表单:
(1) input type=file
(2) 必须把 form 的 enctype 属性设为 multipart/form-data,
enctype 属性取值:
application/x-www-form-urlencoded:表单 enctype 属性的默认值。这种编码方案使用有限的字符集,当使用了非字母和数字时,必须用”%HH”代替(H 代表十六进制数字)。对于大容量的二进制数据或包含非 ASCII 字符的文本来说,这种编码不能满足要求。
multipart/form-data:form 设定了enctype=“multipart/form-data”属性后,表示表单以二进制传输数据 。在浏览器在上传文件时,将把文件数据附带在 http 请求消息体中,并使用 MIME 协议对上传文件进行描述,以方便接收方对上传数据进行解析和处理。
(3) 表单提交的方式要是 post(get的请求体有大小限制,而post无大小限制)
注意:enctype=“multipart/form-data”的表单在servlet中不能再像以往那样通过 request.getParameter()那样得到请求中的参数数据(数据格式不对),另有取值的方式
2、为了方便用户处理上传数据,Apache 提供了一个用来处理表单文件上传的开源组件: Commons-fileupload 和Commons-io ,Commons-fileupload 组件从 1.1 版本开始依赖 commons-io
其主要的接口和类有三个:
ServletFileUpload 负责处理上传的文件数据,并将每部分的数据封装成一到 FileItem 对象中。
isMultipartContent(HttpServletRequest request) 判断上传表单是否为 multipart/form-data
parseRequest(HttpServletRequest request) :得到请求所有表单项的数据对象,返回一 个ListFileItem
setFileSizeMax(long fileSizeMax) 设置上传文件的最大值。
setSizeMax(long sizeMax) 设置上传文件总量的最大值
2.DiskFileItemFactory 是创建 FileItem 对象的工厂,在这个工厂类中可以配置内存缓冲区大小和存放临时文件的目录。
setSizeThreshold(int sizeThreshold,File repository )
设置内存缓冲区的大小,默认值为 10k 当上传文件大于缓冲区大小时,fileupload 组件将使用临时文件缓存上传文件
setRepository(File repository) 指定临时文件目录,默认值为 System.getProperty(java.io.tmpdir)
FileItem :代表一个表单项数据,可以获得表单项的数据,可以判断是否为普通表单项
isFormField():为true,为普通表单项;为false,为file表单项
getFieldName() 获取的是普通表单项的表单项名。
getString(encod) 获取的是普通表单项的表单项值。
getName() 获取的是上传文件的简单文件名(有些浏览器(ie)会返回文件的全路径 名,所有在此处最好加以判断)
3. 基本的原理为:
FileUpload组件将页面提交的所有元素(普通form表单域,如text和文件域file)都看作一样的FileItem,这样上传页面提交的 request请求也就是一个FileItem的有序组合,FileUpload组件可以解析该request,并返回一个一个的FileItem。而对每一个FileItem,FileUpload组件可以判断出它是普通form表单域还是文件file域,从而根据不同的类型,采取不同的操作--如果是表单域,就读出其值,如果是文件域,就保存文件到服务器硬盘上或者内存中。
4、fileuplpa
您可能关注的文档
- 2014文件和文件夹的管理4.doc
- 2014文件和档案管理制度.doc
- 2014文件和资料发放登记表.doc
- 2014文件在磁盘上的组织结构和文件的查找.doc
- 2014文件和资料控制程序.doc
- 2014文件和资料管理程序.doc
- 2014文件处理.doc
- 2014文件夹加密大师.docx
- 2014文件夹加密操作方法文件夹加密软件入门.doc
- 2014文件夹加密操作.doc
- 2025年中国乙氧苯柳胺软膏市场调查研究报告.docx
- 2025年及未来5年电信设备项目市场数据调查、监测研究报告.docx
- 2025年中国产宝口服液市场调查研究报告.docx
- 2025年及未来5年远红外线热敷按摩仪之瑞颈灵项目市场数据分析可行性研究报告.docx
- 2025年中国2—氨基—4,6—二氯嘧啶市场调查研究报告.docx
- 2025年及未来5年双层风琴帘项目市场数据调查、监测研究报告.docx
- 2025年及未来5年多功能短路定位分析仪项目市场数据调查、监测研究报告.docx
- 2025年中国换芯型烟嘴市场调查研究报告.docx
- 2025年及未来5年印章防伪项目市场数据调查、监测研究报告.docx
- 2025年中国超小型冷冻修边机市场调查研究报告.docx
最近下载
- 2025陕西省从优秀村(社区)干部中考试录用乡镇(街道)机关公务员200人考试参考试题及答案解析.docx VIP
- 泛光照明外墙吊绳专项施工方案.docx
- 雷克萨斯-Lexus LS-产品使用说明书-LS460L-USF46L-AEZGHC5-LS460LOM50E87C-1509.pdf VIP
- 生活印度尼西亚语会话初级1-60.doc VIP
- 西门子S120调试手册.pdf VIP
- 架空光(电)缆通信杆路工程设计规范_精品.doc VIP
- 02 电子病历六级规划示例.pptx VIP
- 架空光(电)缆通信杆路工程设计规范.doc VIP
- 二层次三因素说.docx VIP
- 重机 电动缝纫机 服装类缝纫机 LBH-1790S 使用说明.pdf
原创力文档


文档评论(0)