快捷搜索:

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

二、在ASP中履行

现在已经得出结论,RFC1867是在WEB利用法度榜样上载文件的最好要领。那么若何来运行?Microsoft供给了什么措施?其它有哪些措施可以用?

Microsoft的Posting Acceptor

ASP不支持multipart/form-data编码要领,然则,Microsoft供给了免费的Posting       Acceptor(http://www.microsoft.com/iis/support/iishelp/iis/htm/core/pareadme.htm),它是一个ISAPI利用法度榜样,上载停止后,孕育发生一个到ASP页的从新送达。(见 Scott Stanfield的文章 issue of MIND(98年七月))。

Software Artisans的SA-FileUp

SA-FileUp(http://www.softartisans.com/softartisans/saf.html)是最早的商业活动办事器组件(Active Server Components)之一。初版是97年5月开始应用的,现在全天下包括Microsoft.com在内的上千个网站都在应用它。早期的Beta版本用ISAPI过滤器和活动办事器组件的联合体与ASP结合起来。接着,Microsoft推出了ASP 1.0b(ASP.DLL 1.15.14.0),供给了一种新措施:Request.BinaryRead(二进制读哀求)。二进制读措施使浏览器中的原始未加工数据可以被活动办事器组件应用。这样一来,SA-FileUp就不再必要ISAPI过滤器,而作为一个ASP组件存在了。

SA-FileUp应用二进制读哀求,而不是经由过程表单工具。这样是故意义的:你怎能一边从浏览器读原始数据流,又同时把它作为表信息来解析呢?为了照应ASP开拓职员,SA-FileUp 在它自己的表集里从新供给了所有的表哀求 功能。这样使习气于应用表哀求的ASP编程职员对SA-FileUp 能够加倍认识。

Posting Acceptor与SA-FileUp 之对照

现在就PA和SA-FileUp进行一个尽可能客不雅的对照:

■ 与ASP的结合性:SA-FileUp在ASP中是完全可脚本化的,它可以与ASP利用法度榜样很好地结合起来, 而不是作为一个自力的ISAPI DLL存在。

■ 标准支持性:从IE浏览器进行PA上载要应用其特有的WebPost API,以是不如RFC1867, 应用PA,对付Netscape和IE用户要应用不合的款式。

■ 匿名连接:因为PA应用一个ISAPI DLL,在ASP利用法度榜样以外它就必须供给额外的安然保护。是以在默认状态下PA不容许统统匿名连接。PA 1.1可以容许匿名上载,然则由于有一个上载的编程节制,这里仍旧有必然的危险。因为SA-FileUp已经和ASP结合在一路,利用法度榜样可以抉择适当的安然度,包括匿名。

■ 上载节制:上载正在发送时,PA不容许任何节制。然则用SA-FileUp,可以限定上载的规模或实时抉择取消上载。而最好的一点在于可以动态改变上载的位置。

■ 处置惩罚历程:PA有两步:上载和从新送达。用SA-FileUp,统统都可以一步完成,例如根据上载的状态写数据库。

■ 上载到一个数据库:PA只能上载到文件,SA-FileUp可上载到文件和数据库。

■ “文件名中的空格”:当处置惩罚含有空格的文件名时,PA存在问题;SA-FileUp就没有这样的破绽。

■ 价格:PA可从Microsoft免费下载,与NT选项软择包绑缚在一路。而SA-FileUp不是免费的:它是有支持的商业组件。

Vertigo Software的总裁Scott Stanfield(http://www.vertigosoftware.com/), 是MIND杂志98年7月号上Post Accetpor文章的作者,MIND上的文章颁发之后,在 Software Artisans 上关于SA-FileUp,他又写道:“知道了[SA-FileUp]异常愉快,这真是巧妙而有代价的产品。”

合营的支持问题

到现在为止,有关文件上载的支持问题主如果与安然有关的。平日网站都过分小心地保护NTFS 许可,它可以防止匿名用户帐号向文件目的地址中进行写入。而且纵然是 高档办事器治理员也常常差错理解安然的含义。

要记着,IIS/ASP在一个特其余安然情况下运行每个ASP页。假如没有鉴别机制(没有Basic,没有NT Challenge/Response),每一页都作为匿名用户履行。收集治理员可以设置与匿名用户响应的NT帐号。

对付IIS3,默认的匿名用户是IUSR_。

对付IIS4,所有运行中的收集利用法度榜样的默认匿名用户都是IUSR_(“在零丁的内存空间运行”不被查看)。所有运行以外的利用法度榜样的默认匿名用户是 IWAM_ (“在零丁的内存空间运行”被查看)。

应用SA-FileUp时,必须包管适当的用户对目的路径有读、写、删除许可。

假如鉴别功能发挥感化,在运行ASP页的历程中IIS/ASP 就将扮演已经辨其余用户。 是以经鉴别用户的注册帐号对目的路径必须有读、写、删除许可。

对IIS安然的深入评论争论已经跨越了本文的范围,the IIS 4 Resource Kit有很好的解释。

一些代码

理论已经足够了,下面来看一些ASP代码。

单个文件上载

下面是单个文件上载的一个简单的HTML款式。

Please Upload Your File

Enter filename to upload:

下面是文件'formresp.asp':

Upload File Results

Thank you for uploading your file.

Total Bytes Written:

有附加表单元素的文件上载

增添附加表单元素异常简单。只要精确指定ENCTYPE,它就象任何通俗HTML文件一样运行。

Please Upload Your File

Enter description:  Enter filename to upload:

下面是文件'mformresp.asp':

Upload

File Resul

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