当前位置: 首页 > 图文教程 > 网络编程 > ASP > 用ADO STREAM做的无组件上传程序简单介绍

ASP
Adodb.Command 平时很少注意到的一个参数
Asp.Net控件加载错误的解决方法
远程连接access数据库的方法
创建具有JScript的HTML的XMLHTTP
在Asp中如何快速优化分页的技巧
用VB生成DLL封装ASP代码,连接数据库
RS.OPEN SQL,CONN,A,B 全接触
利用adodb.stream直接下载任何后缀的文件(防盗链)
用ASP编程控制在IIS建立Web站点的程序代码
使用VBScript操作Html复选框(CheckBox)控件
把文章内容中涉及到的图片自动保存到本地服务器
两个不同数据库表的分页显示解决方案
使用组件封装数据库操作(一)
使用组件封装数据库操作(二)
如何在pb中创建COM组件,并在asp中调用并返回结果集?
用ASP和Microsoft.XMLDOM分析远程XML文件
浅谈无刷新取得远程数据技术
将ASP纪录集输出成n列的的表格形式显示的方法
在ASP中通过oo4o连接Oracle数据库的例子
Server Application Error详细解决办法

ASP 中的 用ADO STREAM做的无组件上传程序简单介绍


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 60 ::
收藏到网摘: n/a

 
以前,如果要用ASP操作文件,比如移动、复制、删除或者创建一个记事本文件,基本上都是通过FILESYSTEMOBJECT对象做的,当然,这个东西很专业,也没说什么不好,它可以提供完善的文件信息,比如建立时间,大小,上次修改时间等等,但是如果你不做痛苦的高代价的字符格式转换的话,利用它你无法直接操作二进制文件。

但是,现在我们介绍的stream物件可以同时操作文本对象和二进制对象,要求是您的机器上要安装有ADO2。5或者更高版本,您可以从http://www.microsoft.com/data里去DOWN的。

这个stream对象包含了许多操作二进制和文本文件的方法,让我们来看例子吧

打开stream对象

<!--METADATA TYPE="typelib"      UUID="00000205-0000-0010-8000-00AA006D2EA4"     NAME="ADODB Type Library"--><%'Create a Stream instanceDim objStreamSet objStream = Server.CreateObject("ADODB.Stream")'Open the streamobjStream.Open
对于以上的引用,如果您有不明白的地方,可以看我以前贴的帖子,具体什么名字忘记了

注意:如果版本不对以上代码会提示错误信息的。
现在您已经建立了一个0长度的STREAM,任何时候,你都可以使用size属性看改stream的大小,现在我们要指定操作什么类型的信息,二进制还是text ,如果是text还要指定是ASCII还是UNICODE格式

如下代码:
objStream.Type = adTypeText
objStream.Charset = "ascii"

接下来我们向这个stream里写进一个text文件,用它的loadfromfile方法

objStream.LoadFromFile "D:\Inetpub\wwwroot\webtech\083100-1.shtml"

在这里要注意的是,如果你操作stream,一定要搞清楚位置的概念,这里我们使用了loadfromfile方法以后,原来stream里的内容会被全部清除,然后,该文件被装载到stream里面,接着stream的位置恢复为0,(stream的开始位置)
你如果在当前0位置写入信息,就会覆盖原来的内容,所以你如果想要追加东西的话,必须从最后位置开始操作,如下代码:

objStream.Position = objStream.Size

该代码把当前位置移到最后

现在我们可以往后面加东西了,嘿嘿,比如

objStream.WriteText "请访问我的聊天室,MM尤其欢迎"

哈哈
现在我们达到了我们的目的了,让我们把它保存下来
这里要注意的是因为你是用iuser_machinename的帐号的,所以相应目录要对该帐号开放写权限的,这个是没办法的事,不然会出错。

objStream.SaveToFile"D:\InetPub\wwwroot\demos\StreamDemo.txt", adSaveCreateOverwrite

继承我们的优良传统,使用完以后,关闭释放

'Close the stream and set it to nothing...
objStream.Close
Set objStream = Nothing
%>

前面我也说过,它也能操作二进制对象,其实只要修改一些参数就可以了,让我们来看一个例子:

<!--METADATA TYPE="typelib"
      UUID="00000205-0000-0010-8000-00AA006D2EA4"
     NAME="ADODB Type Library"
-->
<%
  'Create a stream object
  Dim objStream
  Set objStream = Server.CreateObject("ADODB.Stream")
  
  'Open a GIF file
  objStream.Type = adTypeBinary
  objStream.Open
  objStream.LoadFromFile "D:\Inetpub\wwwroot\images\banner\dimacbanner1.gif"
  
  'Output the contents of the stream object
  Response.ContentType = "image/gif"
  Response.BinaryWrite objStream.Read
  
  'Clean up....
  objStream.Close
  Set objStream = Nothing
%>