日期:2012-12-05  浏览次数:20729 次

文件上传:
你使用下面Html文件看看,
------upload.htm------
<HTML>
<BODY>
<FORM METHOD="Post" ENCTYPE="multipart/form-data" ACTION="upload.asp">
文件:<INPUT TYPE="file" NAME="txtFileName">
<INPUT TYPE="Submit" VALUE="Upload">
<FORM>
</BODY>
</HTML>
------upload.asp------------
<%
  with response
   .Write "<table border=1>"
   For Each Key In Request.ServerVariables
     .Write "<tr><td>"
     .Write Key
     .Write "</td><td>"
     .Write Request.ServerVariables(Key)
     .Write "</td></tr>"
   Next
  .Write "</table>"
%>

然后你尝试上不同大小的文件,你会发现上传较大文件要花更多时间,
说明该文件的已经上传,而服务器端没做任何处理。观察upload.asp
显示结果,发行HTTP_Content_Length均不相同。

事实上,你所要上传的文件数据已经通过HTTP协议上传到服务器,
起数据就在REQUEST集合里,至于在什么地方?什么格式?下载文件:
http://www.pstruh.cz/dlldownload/ScptUtl.exe,安装后,在目录
里有ASP程序样本,详细描述了如何分割文档数据,如何保存在数
据库的具体过程。
  在本论坛精华区也有相关介绍。
  由于ASP只能保存文本文件而不能保存二进制文件,事实上
http://www.pstruh.cz/dlldownload/ScptUtl.exe安装的时候在计算
机上安装了服务器组件,使得ASP可以调用组件保存二进制文件。
这样就可以上传各种类型的文件。
  相似的,ChinaASP的文件上传组件,是包括了上面的所有过程,
安装ChinaASP文件上传组件,ASP可以直接读取上传的文件资料
并做适当处理,如保存等等,使得ASP编程变得更为简单。
  上传的文件数据在Request.BinaryRead(Length)里面,关键是
如何分解它和保存它。
  通过分析http://www.pstruh.cz/dlldownload/ScptUtl.exe里
面的样本,了解其分割方法后,不用服务器组件又怎样保存呢?

  用WebClass全部可以搞定。知道在VB里面怎样分割字符串和
如何保存二进制文件吗?

  上次用ChinaASP的文件上传组件过期后,我现在就用WebClass
做的文件上传。

  同样,WebClass可以开发很多ASP做不到的功能,如
<img src=http://mysite/image.asp>不仅显示一个图片,而且还可以
记录浏览者的IP,这样,你到聊天室查别人的IP多方便啊!呵呵,
如果熟悉图片格式,Jpg,Gif,Bmp,也可以根据相关数据通过程序自动
绘制一个图形,反正啦,VB可以做的都能做。

  WebClass是不是很好啊?只不过是简单的程序直接用ASP做就
行了,复杂的才用WebClass做。好象WebClass比ASP快多了。