欢迎来到天天文库
浏览记录
ID:12025689
大小:589.50 KB
页数:22页
时间:2018-07-15
《通过代码实例跟我学struts框架从入门到精通——在struts框架中实现web文件上传的应用实例》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、杨教授工作室精心创作的优秀程序员职业提升必读系列资料1.1通过代码实例跟我学Struts2框架从入门到精通——在Struts2框架中实现Web文件上传的应用实例1.1.1在Struts2框架中实现Web文件上传的基本组件及相关的应用技术1、与文件上传有关的一些概念(1)上传的来源上传一词来自英文(upload),拆开来“up”为“上”,“load”为“载”,故上传也叫上载,与下载(download)是逆过程。(2)上传的分类上传分为Web上传和Ftp上传,前者直接通过点击网页上的链接即可操作,后者需要专用的FTP工具。目前我们使用的web上传都是基于RFC1867标
2、准的HTML中基于表单的文件上传。2、RFC1867(Form-basedFileUploadinHTML)标准(1)带有文件提交功能的HTML表单现有的HTML规范为INPUT元素的TYPE属性定义了八种可能的值,分别是:CHECKBOX,HIDDEN,MAGE,PASSWORD,RADIO,RESET,SUBMIT,TEXT。另外,当表单采用POST方式的时候,表单默认的具有“application/x-www-form-urlencoded”的ENCTYPE属性。(2)RFC1867标准对HTML做出了两处修改:1)为INPUT元素的TYPE属性增加了一个FI
3、LE选项。2)INPUT标记可以具有ACCEPT属性,该属性能够指定可被上传的文件类型或文件格式列表。另外,本标准还定义了一种新的MIME类型:multipart/form-data,以及当处理一个带有ENCTYPE="multipart/form-data"并且/或含有的标记的表单时所应该采取的行为。3、多用途网际邮件扩充协议(MIME)多用途网际邮件扩充协议(MIME)是MultipurposeInternetMailExtensions的缩写,说明了如何安排消息格式使消息在不同的邮件系统内进行交换。MIME的格式灵活,允许邮
4、件中包含任意类型的文件。MIME杨教授工作室,版权所有,盗版必究,22/22页杨教授工作室精心创作的优秀程序员职业提升必读系列资料消息可以包含文本、图象、声音、视频及其它应用程序的特定数据。4、文件上传的原理(1)关于HTMLForm表单中的enctype属性表单元素的enctype属性指定的是表单数据的编码方式,该属性有3个值:1)application/x-www-form-urlencoded:这是默认编码方式,它只处理表单域里的value属性值,采用这种编码方式的表单会将表单域的值处理成URL编码方式。2)multipart/form-data:这种编码方式
5、的表单会以二进制流的方式来处理表单数据,这种编码方式会把文件域指定文件的内容也封装到请求参数里。3)text/plain:这种方式主要适用于直接通过表单发送邮件的方式。表单中enctype="multipart/form-data"的意思,是设置表单的MIME编码。默认情况,这个编码格式是application/x-www-form-urlencoded,不能用于文件上传;只有使用了multipart/form-data,才能完整的传递文件数据。enctype="multipart/form-data"它的意思是以二进制的数据格式来传输,所以必须把数据再换为Stri
6、ng的。而struts2里就可以了,因为它自动给你转换了。(2)普通的Web文件上传的实现原理文件上传是Web应用经常需要提供的一个功能要求,其实现的基本原理是通过为表单元素设置enctype="multipart/form-data"属性,让表单提交的数据以“二进制编码”的方式提交,在接收此请求的服务端程序(如Servlet或者Action组件)中用二进制流来获取内容,就可以取得上传文件的内容,从而实现文件的上传。(3)Struts2中的文件上传的实现原理Struts2是通过CommonsFileUpload文件上传。CommonsFileUpload通过将HTT
7、P的数据保存到临时文件夹,然后Struts使用fileUpload拦截器将文件绑定到Action的实例中;从而我们就能够以本地文件方式的操作浏览器上传的文件。5、Jakarta的Common-FileUpload组件在Java领域中,有两个常用的文件上传项目:(1)一个是Apache组织Jakarta的Common-FileUpload组件(http://commons.apache.org/fileupload/)(2)另一个是Oreilly组织的COS框架(http://www.servlets.com/cos/)。利用这两个框架都能很方便的实现文件的上传。
此文档下载收益归作者所有