用ADO STREAM做的无组件上传程序

用ADO STREAM做的无组件上传程序,今天我做一下关于它的简单介绍

以前,如果要用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
%>

你可以试试用这个写一个上传的东西,这样学习起来快,反正有现成的老师在,可以参考

时间: 2024-08-03 04:15:24

用ADO STREAM做的无组件上传程序的相关文章

关于用ADO STREAM做的无组件上传程序简单介绍_FSO专题

前面有人贴了用ADO STREAM做的无组件上传程序,今天我做一下关于它的简单介绍 以前,如果要用ASP操作文件,比如移动.复制.删除或者创建一个记事本文件,基本上都是通过FILESYSTEMOBJECT对象做的,当然,这个东西很专业,也没说什么不好,它可以提供完善的文件信息,比如建立时间,大小,上次修改时间等等,但是如果你不做痛苦的高代价的字符格式转换的话,利用它你无法直接操作二进制文件. 但是,现在我们介绍的stream物件可以同时操作文本对象和二进制对象,要求是您的机器上要安装有ADO2.

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

前面有人贴了用ADO STREAM做的无组件上传程序,今天我做一下关于它的简单介绍以前,如果要用ASP操作文件,比如移动.复制.删除或者创建一个记事本文件,基本上都是通过FILESYSTEMOBJECT对象做的,当然,这个东西很专业,也没说什么不好,它可以提供完善的文件信息,比如建立时间,大小,上次修改时间等等,但是如果你不做痛苦的高代价的字符格式转换的话,利用它你无法直接操作二进制文件.但是,现在我们介绍的stream物件可以同时操作文本对象和二进制对象,要求是您的机器上要安装有ADO2.5或

稻农的无组件上传程序ASP.NET版

asp.net|程序|上传|无组件   上传在Web开发中,是非常普遍的一项任务,以前用ASP的时候,一直用稻农的无组件上传工具,觉得很好用,现在学Asp.net了,却发现没有类似原来稻农的无组件上传程序,因此花了点时间,将稻农的无组件上传程序用vb.net改写了一下,可以编译成DLL,在C#或者Vb.net等任意asp.net支持的语言中使用,在共享出来,希望能为大家节约点时间,也欢迎提出意见和建议,让他更完善. Option Explicit On Option Strict On Impo

化境ASP无组件上传

上传|无组件 一直以来,由于FileSystemObject的局限,所以ASP最大的难题就是文件上传,大多解决法就是安装第三方上传组件.可第三方组件有很多问题,有的组件要注册,有的组件要在表单中加上他的版权信息.还有的就是组件的兼容问题.在网上也流传了很多无组件上传的代码,但都是只能上传文本文件,或是只能将文件上传到数据库中.作者这段时间在研究ASP,发现可以不用第三方组件上传任意类型的文件.就写了这个类,给大家一个方便,整个类放在一个文件:upload_5xsoft.inc 在 Example

ASP无组件上传错误 ASP 0104的解决方法

错误|解决|上传|无组件 问题描述:ASP无组件上传程序无法上传较大的文件"Request 对象 错误 'ASP 0104 : 80004005'",(大概大于100kb就不行),但是原先在2000 server中可以上传5m左右的文件. 解决方法:在IIS属性中选中"允许直接编辑配置数据库",然后.在服务里关闭iis admin service服务找到windows\system32\inesrv\下的metabase.xml编辑其中的ASPMaxRequestE

无组件上传文件,一个函数搞定

函数|上传|无组件 本函数是用"化境ASP无组件上传程序2.0"上传文件.核心函数:<%'''''=============================='函数名:upfile'作用: 使用"化境上传组件"上传文件到服务器上'参数: file1 文件对象 ' savepath 文件要保存的相对路径,如"../"上一级上录,""同目录 ' maxsize 允许上传文件的最大值,单位KB.为0不限大小.' savetyp

ASP实例:一个简单的ASP无组件上传类

简单的ASP无组件上传类,发出来让大家看看.可以做做实验! 以下为引用的内容: <%@ language="javascript"%><%var self = Request.serverVariables("SCRIPT_NAME");if (Request.serverVariables("REQUEST_METHOD")=="POST"){        var oo = new uploadFile(

无组件上传实例

上传|无组件 这是我从我以前写过的程序中分离出来的,由于这段代码是针对整体成体程序写的,因此功能非常简单,而且对于上传的数据也没有严格的限制,所以难免会出现这样或那样的错误. 我贴着篇文章主要是让大家了解一下无组件上传的思路,而不是让大家使用的. <% 'Yanhang.00上传程序V1.0'1.0版本的程序是从以前的程序修改过来的,但是可能还是仍有不足,如果你发现任何错误,请写信通知我,谢谢!'请在使用前先修改下面的信息'目前本程序我认为最大的不足就是只能用系统时间定义文件名,不能使用源文件名

最短的无组件上传代码(仅9行)

上传|无组件 我研究了一下无组件上传,并作出了一个最简单可行的方法----用9行代码真正实现无组件上传,怎么说来花了才半天就写了9行代码算是有点效率和成果.于是就写了这篇文章. formSize=Request.TotalBytes()formData=Request.BinaryRead(formSize)DataHeader=LeftB(formData,InStrB(formData,Chrb(13)&Chrb(10)))strFileData=MIDB(formData,LenB(Dat