编程开发 > ASP > 文章内容

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

2011-7-29编辑:mal
 现在“瘦客户”的观点已经是一个神话了,但随着电视或掌上型浏览器的繁荣,这一状况会有所改变。今天绝大多数的网络客户仍使用功能强大的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)的自带内容。它是一个非常简单但又很强大的概念:定义一个格式域的新类型

   < INPUT TYPE= "FILE" >
   然后向表单中填加不同的编码方案:
   < FORM ACTION="formproc.asp" METHOD="POST" ENCTYPE="multipart/form-data" >
   而不是用典型的:
   < FORM ACTION="formproc.asp" METHOD= "POST" >

   在传输大量数据时,这种编码方案比默认的"application/x-url-encoded"格式编码方案效率高。正如你也许知道的,URL可用的字符集是很有限的。任何超出范围的字符集都要用'%nn'来代替,在这里nn是相应的两位十六进制数。即使是最常用的空格字符也要用'%20'来代替。如果浏览器不得不用效率如此低的编码方法对整个文件进行编码,那么上载文件的传输规模有可能比原始文件大2到3倍。而RFC1867用Multipart MIME编码,就象通常在e-mail信息中所见到的,在传输大量数据时不用编码,而只是在数据周围有几个简单有用的头。

   结果看起来就象一个规则的HTML POST表单,实现上,通过4 KB的表单格式,代表的数据可以是几兆字节。RFC1867还提出了一些有待被浏览器提供者采纳的建议,
一些ASP小源程序

热点推荐

登录注册
触屏版电脑版网站地图