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

2016-01-29 17:15 7 1 收藏

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

【 tulaoshi.com - 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_< computername 。

   对于IIS4,所有运行中的网络应用程序的默认匿名用户都是IUSR_< computername (“在单独的内存空间运行”不被查看)。所有运行以外的应用程序的默认匿名用户是 IWAM_< computername (“在单独的内存空间运行”被查看)。

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

   如果鉴别功能发挥作用,在运行ASP页的过程中IIS/ASP 就将扮演已经鉴别的用户。 因此经鉴别用户的注册帐号对目的路径必须有读、写、删除许可。

   对IIS安全的深入讨论已经超过了本文的范围,the IIS 4 Resource Kit有很好的解释。

   一些代码

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

   单个文件上载

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



    < HTML < HEAD     <

来源:http://www.tulaoshi.com/n/20160129/1500788.html

延伸阅读
正在看的ORACLE教程是:Oracle三种上载文件技术。 Oracle中有多种方法可以向数据库或服务器文件系统上载文件,这里主要介绍如下三种:Oracle HTTP Server(OHS)的mod_plsql模块提供通过web页面向数据库上载文件的功能;Oracle 9iAS的标签库和Bean提供的文件上载功能;通过JDBC程序上载文件。  一、Oracle HTTP&n...
标签: ASP
  哪的资料都不如官方资料权威。今天总算从MSDN中择出了ASP编码问题的解决方案。 下面是MSDN中的一段话。 Setting @CODEPAGE explicitly affects literal strings in a single response. Response.CodePage affects dynamic strings in a single response, and Session.CodePage affects dynamic strings in all responses in a sessio...
标签: ASP
  三、Global.asa ASP的Application和Session对象体现了其他ASP内置对象所没有的特征--事件。每一个访客访问服务器时都会触发一个OnStart事件(第一个访客会同时触发Application和Session的OnStart事件,但Application先于Session),每个访客的会话结束时都会触发一个OnEnd事件(最后一个访客会话结束时会同时触发Application和Sess...
Minbear (dev-club) 相信很多人都做过安装程序,目前最大功能最全的当属InstallShield,但是InstallShield的语法学习起来实在费劲,相对而言vs.net自带的安装部署短小精悍,且使用C#语法,对于一般C#开发者来说使用起来就极为简便,在对其作了一些研究之后,发现vs.net的安装部署项目的功能也已经非常好用,一般的程序安装都可以轻松实现,当...
    现在使用FoxMail的用户越来越多了,但是FoxMail却不像OutLook一样给编程人员提供开发接口。我认为这对一个好的软件的推广来说是很不利的。前几个月小弟由于开发需要对FoxMail进行了以下研究,这几天闲下来将材料整理了一下,供大家参考。我使用FoxMail4.2进行研究,但是在FoxMail5.0推出后,我也进行了测试,仍然使用。 ...

经验教程

629

收藏

63
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部