⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 深入研究“用asp上载文件”.txt

📁 用纯ASP代码实现图片上传并存入数据库中
💻 TXT
📖 第 1 页 / 共 2 页
字号:

   现在就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 >     < TITLE >Please Upload Your File< /TITLE >    
    < /HEAD > < BODY >     < form enctype="multipart/form-data" method="post" action="formresp.asp" > 
       Enter filename to upload: < input type="file" name="f1" >     < input type="submit" > < /form >     < /BODY > < /HTML > 
   下面是文件'formresp.asp':

   < %@ LANGUAGE="VBSCRIPT" % > 
   < HTML >< HEAD > < TITLE >Upload File Results< /TITLE > < /HEAD > 
   < BODY > Thank you for uploading your file.
   < % Set upl = Server.CreateObject("SoftArtisans.FileUp") % > 
   < % upl.SaveAs "C: empupload.out" % >
   Total Bytes Written: < %=upl.TotalBytes% > 
   < /BODY > < /HTML > 

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

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


    < HTML > < HEAD > < TITLE >Please Upload Your File< /TITLE >    
    < /HEAD > < BODY > 
    < form enctype="multipart/form-data" method="post" action="mformresp.asp" > 
      Enter description: < input type="text" name="descrip" >      Enter filename to upload: < input type="file" name="f1" >     < input type="submit" > < /form > 
    < /BODY > < /HTML > 
   下面是文件'mformresp.asp':


    < %@ LANGUAGE="VBSCRIPT" % > < HTML >< HEAD > < TITLE >Upload 
       File Results< /TITLE > < /HEAD > 
    < BODY >
       Thank you for uploading your file.       < % Set upl = Server.CreateObject("SoftArtisans.FileUp") % > 
       < % upl.SaveAs  "C:    empupload.out" % >       Your description is: '< %=upl.Form("descrip")% >'       Total Bytes Written: < %=upl.TotalBytes% > 
    < /BODY > < /HTML > 
   多文件上载

   由于浏览器不支持SIZE= 属性,对多文件的情况就必须在每个文件中都使用一个额外的< INPUT >语句。


    Enter first filename: < input type="file" name="f1" >     Enter second filename: < input type="file" name="f2" >
   格式处理是一样的:


    < %@ LANGUAGE="VBSCRIPT" % > < HTML >< HEAD > 
    < TITLE >Multiple File Upload Results< /TITLE > < /HEAD > 
    < BODY > 
      Thank you for uploading your files.      < % Set upl = Server.CreateObject("SoftArtisans.FileUp") % >       < % upl.Form("f1").SaveAs "C:    empupload1.out" % >       Total Bytes Written for file 1: < %=upl.Form("f1").TotalBytes% >       < % upl.Form("f2").SaveAs "C:    empupload2.out" % >       Total Bytes Written for file 2: < %=upl.Form("f2").TotalBytes% >     < /BODY > < /HTML > 
   限制上载规模

   要限制上载规模,只需要设置一个属性:


    < %@ LANGUAGE="VBSCRIPT" % > < HTML >< HEAD >      < TITLE >Upload File Results< /TITLE > < /HEAD >      < BODY > Thank you for uploading your file.     < % Set upl = Server.CreateObject("SoftArtisans.FileUp") % >      < % upl.MaxBytes = 1000 '--- limit the upload size to 1000 bytes % >       The maximum size that you are permitted to upload is < %=upl.MaxBytes% >       bytes per file.     < % upl.SaveAs "C:    empupload.out" % > Total Bytes Written:      < %=upl.TotalBytes% >      Server Filename: < %=upl.ServerName% >      Total Bytes Transmitted by you: < %=Request.TotalBytes% >      < /BODY > < /HTML >         
   第1000个字节后的内容都将被删除,WEB服务器的磁盘就不会不必要地被占满。

   结论

   在WEB应用程序中实现上载文件非常简单:区区两行ASP代码就能完成。HTTP/RFC1867文件上载因服务器提供的丰富的编程环境成为首选。SA-FileUp作为与ASP结合的活动服务器组件,比Microsoft的Posting Accetpro有明显优势。






--------------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -