因胸联盟 发表于 2015-1-16 22:27:42

ASP教程之深切研讨“用ASP上载文件”(一)

结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。如今“瘦客户”的概念已是一个神话了,但跟着电视或掌上型扫瞄器的昌盛,这一情况会有所改动。明天尽年夜多半的收集客户仍利用功效壮大的PC,附着着大批的客户端存储器和客户端感乐趣的内容。在Internet协定下,将文件传送到中心服务器有一些办法可供选择,但基于WEB的文件上载比别的办法都要初级。上面来查验这一点。
1、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,同意上载到OLEDB数据库。但用FTP,却相对做不到这点!

  ■功能:FTP和HTTP终极都是用TCP协定,这是决意传输功能的决意要素。

  ■牢靠性及从头上载:FTP和HTTP1.1都同意传输从头启动。不幸地是很多服务器包含IIS,如今都不克不及撑持恣意一种协定的从头上载功效。FTP的从头上载功效将在IIS5版本中完成。

  总之,同WEB自己一样,服务器的可编程性使HTTP上载比FTP具有极年夜的上风。

  HTTP上载格局

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

  HTTP上载办法1:RFC1867

  HTML3.2终极推出W3C之前的一段时代,RFC1867(http://info.internet.isi.edu/in-notes/rfc/files/rfc1867.txt)是IETF的倡议尺度。起首是Netscape在Navigator2.0中运转,随着Microsoft把它作为IE3.02(32-bit)的附加和IE3.03(16-bit)的自带内容。它是一个十分复杂但又很壮大的观点:界说一个格局域的新范例

  <INPUTTYPE="FILE">
  然后向表单中填加分歧的编码计划:
  <FORMACTION="formproc.asp"METHOD="POST"ENCTYPE="multipart/form-data">
  而不是用典范的:
  <FORMACTION="formproc.asp"METHOD="POST">

  在传输大批数据时,这类编码计划比默许的"application/x-url-encoded"格局编码计划效力高。正如你大概晓得的,URL可用的字符集是很无限的。任何超越局限的字符集都要用%nn来取代,在这里nn是响应的两位十六进制数。即便是最经常使用的空格字符也要用%20来取代。假如扫瞄器不能不用效力云云低的编码办法对全部文件举行编码,那末上载文件的传输范围有大概比原始文件年夜2到3倍。而RFC1867用MultipartMIME编码,就象一般在e-mail信息中所见到的,在传输大批数据时不必编码,而只是在数据四周有几个复杂有效的头。

  了局看起来就象一个划定规矩的HTMLPOST表单,完成上,经由过程4KB的表单格局,代表的数据能够是几兆字节。RFC1867还提出了一些有待被扫瞄器供应者采取的倡议,即TYPE="FILE"语句的一些属性。个中包含:

ACCEPT(承受):吸收文件之前同意网站限定将要上载的文件范例。
SIZE(巨细):设置单个文件名文本框的巨细或同意多个文件利用单个<INPUT>语句。
MAXLENGTH(长度最年夜值):在客户端设置的上载文件的最年夜范围。
通配符和上载路径:固然RFC有此倡议,但IE和Navigator都不撑持通配符和路径上载。
  幸亏两种扫瞄器都撑持"Browse..."按钮,用户能够用"OpenFile..."对话框很简单地选出行将上载的文件。

  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:HTTPPUT

  HTTP1.1先容了一个新的HTTP动词:PUT。当收集服务器收到了一个HTTPPUT且工具名为("/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、Office2000及将来IE版本都将撑持它。ISP们很乐意把它来代替那些初级、易出妨碍的FrontPage服务器附加部分的机制。要注重的是它并非代替FrontPage服务器附加部分,它只是复杂地供应初级尺度服务来撑持服务器附加部分正在举行的更庞大的功效。在98年10月的PDC,你能看到Office2000经由过程WebDAV完成了“保留到收集”("Savetoweb")如许大度的义务。

  听起来很棒,是否是?假如你想上载内容,WebDAV是很好的,它能够办理很多成绩。但假如你想在收集使用程序内上载文件,WebDAV就力所不及了。同HTTPPUT一样,WebDAV这个动词是由服务器而不是使用程序来注释的,必要在ISAPI过滤器程度上利用WebDAV举措,并在使用程序中注释内容。

  HTTP上载机制:总结

  在WEB使用程序上载文件时,RFC1867仍旧是最天真的办法。PUT的用处很无限,WebDAV对内容作者,如FrontPage的用户来讲很好,可是,它关于那些想往WEB使用程序上增添文件上载的收集开辟职员来讲,它能做的很少。



asp可以轻松地实现对页面内容的动态控制,根据不同的浏览者,显示不同的页面内容。而浏览者一点觉察不出来,就像为他专门制作的页面一样。使用各种各样的组件,asp可以完成无比强大的功能。

简单生活 发表于 2015-1-19 13:25:36

虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。

冷月葬花魂 发表于 2015-1-26 07:50:49

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

因胸联盟 发表于 2015-2-4 13:43:52

兴趣爱好,那么你无须学编程,申请一个域名和空间,在网上下载一些免费开源的CMS系统,你不用改代码,只须熟悉它们的后台操作,像office一样简单方便,很快就能建一个站点,很多站长都是这样做的

活着的死人 发表于 2015-2-10 00:48:47

我认为比较好的方法是找一些比较经典的例子,每个例子比较集中一种编程思想而设计的。

小妖女 发表于 2015-2-28 10:45:41

最近在学asp,不要问我为什么不直接学.net,因为公司网站是asp做的所以有这个需要,卖了本书asp入门到精通,对里面的六大内置对象老是记不住,还有很多属性和方法看的头晕。

若相依 发表于 2015-3-9 22:51:59

哪些内置对象是可以跳过的,或者哪些属性和方法是用不到的?

再现理想 发表于 2015-3-17 03:07:50

尽管MS自己讲C#内核中更多的象VC,但实际上我还是认为它和Java更象一些吧。首先它是面向对象的编程语言,而不是一种脚本,所以它具有面向对象编程语言的一切特性,比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。

金色的骷髅 发表于 2015-3-23 18:01:29

运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
页: [1]
查看完整版本: ASP教程之深切研讨“用ASP上载文件”(一)