快捷搜索:

深入研究“用ASP上载文件”(转)(一)

现在“瘦客户”的不雅点已经是一个神话了,但跟着电视或掌上型浏览器的繁荣,这一状况会有所改变。本日绝大年夜多半的收集客户仍应用功能强大年夜的PC,附着着大年夜量的客户端存储器和客户端感兴趣的内容。在Internet协议下,将文件通报到中央办事器有一些措施可供选择,但基于WEB的文件上载比其它措施都要高档。下面来查验这一点。

一、HTTP与FTP的要领对照

为什么要上载?

文件上载对任何收集利用法度榜样来说都起到紧张感化。这里有一些例子,是关于我们的一些客户若何把文件上载并他们的WEB利用法度榜样结合起来的:

1、基于WEB的e-mail形式,用文件上载给邮件信息增添附件

2、外部互联网利用法度榜样用文件上载在伙伴间传送文件,如协议证实、软件更新或文件

3、技巧支持站点用文件上载从用户中接管差错记录和有问题文件

4、企业内部互联网的文献出版用友好的收集接口在用户间分享文件

5、图形库用文件上载节制提交、孕育发生略图

6、ISP主机店面用文件上载发送产品图象

HTTP与FTP的要领对照

在TCP/IP的早期,FTP是向办事器传输文件的标准机制。它靠得住、可吸收文本和二进制款式,客户可以在任何地方履行,然则它远远不及HTTP的适应性强。下面来对照一下:

■ 靠得住性:用FTP上载,要么治理大年夜量的用户帐号,要么就容许匿名造访。用WEB利用法度榜样上载,利用法度榜样可以确定容许谁上载,免除了极大年夜的治理包袱。

■ 安然性:经由过程HTTP上载可用SSL编码,这样一来信息可以在传输历程中加密。用FTP就无法作到。

■ 设置设置设备摆设摆设难易:FTP上载要求治理员正确地调节NTFS许可。用基于HTTP的上载和利用法度榜样,治理员和利用法度榜样都可以抉择,假如必要的话。

■ 适应性:你想在一个地方存储DOC文件,在另一处存储图形吗?应用FTP的话,用户必须知道这些存储路径。而在WEB利用法度榜样中,你可以自行节制,不用打扰用户就可以进行改动。

■ 能力:用WEB利用法度榜样,每次调用都可以动态地节制上载文件的大年夜小,以致可以根据同一个表单中的信息改变大年夜小。别的还可以冲掉落相符必然标准的上载文件,如差错的MIME类型或文件类型。

■ 界面的简略单纯友好性:招人爱好的网页可以供给指示、建议、在线赞助,而基于批处置惩罚的FTP是弗成能作到的。更紧张的是发生差错时,WEB要领可以立即向用户供给反馈并作出矫正。

■ 防火墙支持:出于安然和常识产权方面的斟酌,许多机构不容许外部的FTP。经由过程简单的设置设置设备摆设摆设,大年夜多半防火墙都支持HTTP。

■ 弥补信息:一个HTTP上载(用RFC1867)还供给其它可用信息,例如用户的原始文件名,这在内部互联网情况下分外有用。

■ 上载到一个数据库:使用办事器端组件,如SA-FileUp,容许上载到OLE DB数据库。但用FTP,却绝对做不到这点!

■ 机能:FTP和HTTP终极都是用TCP协议,这是抉择传输机能的抉择身分。

■ 靠得住性及从新上载:FTP和HTTP 1.1都容许传输从新启动。不幸地是许多办事器包括IIS,现在都不能支持随意率性一种协议的从新上载功能。FTP的从新上载功能将在IIS5版本中实现。

总之,同WEB本身一样,办事器的可编程性使HTTP上载比FTP具有极大年夜的上风。

HTTP上载款式

经由过程HTTP上载有三种文件机制,它们是RFC1867、PUT和WebDAV。

HTTP上载措施1:RFC1867

HTML 3.2终极推出W3C之前的一段时期,RFC1867 (http://info.internet.isi.edu/in-notes/rfc/files/rfc1867.txt) 是IETF的建议标准。首先是Netscape在Navigator 2.0中运行,随着Microsoft 把它作为IE 3.02 (32-bit) 的附加和IE 3.03 (16-bit)的自带内容。它是一个异常简单但又很强大年夜的观点:定义一个款式域的新类型

然后向表单中填加不合的编码规划:

而不是用范例的:

在传输大年夜量数据时,这种编码规划比默认的"application/x-url-encoded"款式编码规划效率高。正如你大概知道的,URL可用的字符集是很有限的。任何越过范围的字符集都要用'%nn'来代替,在这里nn是响应的两位十六进制数。纵然是最常用的空格字符也要用'%20'来代替。假如浏览器不得不用效率如斯低的编码措施对全部文件进行编码,那么上载文件的传输规模有可能比原始文件大年夜2到3倍。而RFC1867用Multipart MIME编码,就象平日在e-mail信息中所见到的,在传输大年夜量数据时不用编码,而只是在数据周围有几个简单有用的头。

结果看起来就象一个规则的HTML POST表单,实现上,经由过程4 KB的表单款式,代表的数据可所以几兆字节。RFC1867还提出了一些有待被浏览器供给者采用的建议,即TYPE="FILE"语句的一些属性。此中包括:

ACCEPT(吸收):接管文件之前容许网站限定将要上载的文件类型。

SIZE(大年夜小):设置单个文件名文本框的大年夜小或允许多个文件应用单个 语句。

MAXLENGTH(长度最大年夜值):在客户端设置的上载文件的最大年夜规模。

通配符和上载路径:虽然RFC有此建议,但IE和 Navigator都不支持通配符和路径上载。

好在两种浏览器都支持"Browse..."按钮,用户可以用"Open File..."对话框很轻易地选出即将上载的文件。

VALUE子句的应用很有趣。为了用户方便,可以让WEB预先设置表单域的值。然则在这种环境下,它使一些不良网站可以预设上载文件名,加上一个客户端提交的表单,就可不经用户许可而从他们的PC上偷盗文件。1997年夏天,CERT和Bell实验室的一名雇员一路对此发出了安然警告,Netscape和 Microsoft很快就发行了防止预设上载文件的补丁法度榜样。

最初的RFC1867明确规定:“在用户没有明确要求的环境下,代理不得向其传送任何文件,这一点很紧张。”以是浏览器本可以只是简单地发出一个警告对话框,例如“你想向办事器传送文件x, y, z吗?”,而不用完全禁止预设文件名。然则,在IE4.01中呈现了一个安然空洞,使网站可以饶过IE现有的安然机制。(见http://www.microsoft.com/windows/ie/security/paste.htm)

HTTP上载措施2:HTTP PUT

HTTP 1.1 先容了一个新的HTTP动词:PUT。当收集办事器收到了一个HTTP PUT 且工签字为("/myweb/image/x.gif"), 它要鉴别用户,取HTTP流的内容并直接存储 到收集办事器。这种措施会给收集带来很大年夜的破坏,是以不常应用。而且它将HTTP 最大年夜的上风---办事器可编程性放弃了。在应用PUT的环境下,由WEB办事器自身处置惩罚哀求,没有CGI或ASP利用法度榜样参与的空间。利用法度榜样捕捉PUT的独一措施是在低水平、ISAPI水平上操作。因为各类缘故原由,大年夜多半收集开拓职员对此没有兴趣。

HTTP上载措施3:WebDAV

WebDAV (http://www.ietf.org/html.charters/webdav-charter.html) 容许收集内容的散播式授权和宣布。它引入几个动词,可以对HTTP内容上载、锁定/开锁、进入/退出。我们可以把它看作一个非特有的设置设置设备摆设摆设治理(如滥觞安然)外加收集文件传输。Microsoft已经公开拓布IIS5、Office 2000 及未来IE版本都将支持它。ISP们很乐意把它来取代那些初级、易出故障的FrontPage办事器附加部分的机制。要留意的是它并不是取代FrontPage办事器附加部分,它只是简单地供给初级标准办事来支持办事器附加部分正在进行的更繁杂的功能。在98年10月的PDC,你能看到Office 2000经由过程WebDAV完成了“保存到收集”("Save to web" )这样漂亮的义务。

听起来很棒,是不是?假如你想上载内容,WebDAV是很好的,它可以办理许多问题。但假如你想在收集利用法度榜样内上载文件,WebDAV就力所不及了。同HTTP PUT一样, WebDAV这个动词是由办事器而不是利用法度榜样来解释的,必要在ISAPI过滤器水平上应用WebDAV动作,并在利用法度榜样中解释内容。

HTTP上载机制:总结

在WEB利用法度榜样上载文件时,RFC1867仍旧是最机动的措施。PUT的用途很有限,WebDAV对内容作者,如FrontPage的用户来说很好,然则,它对付那些想往WEB利用法度榜样上增添文件上载的收集开拓职员来说,它能做的很少。

您可能还会对下面的文章感兴趣: