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

2016-01-29 18:26 6 1 收藏

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

【 tulaoshi.com - ASP 】

  用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:Inetpubwwwrootwebtech83100-1.shtml"

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

objStream.Position = objStream.Size

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

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

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

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

objStream.SaveToFile"D:InetPubwwwrootdemosStreamDemo.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:Inetpubwwwrootimagesbannerdimacbanner1.gif"
  
  'Output the contents of the stream object
  Response.ContentType = "image/gif"
  Response.BinaryWrite objStream.Read
  
  'Clean up....
  objStream.Close
  Set objStream = Nothing
%

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

 

来源:https://www.tulaoshi.com/n/20160129/1505762.html

延伸阅读
标签: ASP
  出处:宝玉BLOG 一、无组件上传的原理 我还是一点一点用一个实例来说明的吧,客户端HTML如下。要浏览上传附件,我们通过<input type="file"元素,但是一定要注意必须设置form的enctype属性为"multipart/form-data": <form method="post" action="upload.asp" enctype="multipart/form-data"  <label   <inpu...
标签: Web开发
网上有不少生成缩略图的ASP组件。若你的虚拟空间不支持注册新组件,可能会感觉自己的网站失色不少。心晴不才,结合网上资源写了个无组件生成缩略图程序,仅供参考。 还是先看看基础部分吧。首先,我们知道在页面中显示图片是如下代码: img src="pic.gif" border="0" width="300" height="260" src是图片路径,borde...
标签: ASP
  组件:"Adodb.Stream" 有下列方法: Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。   Close 方法 使用方法如下 Object.Close 说明:关闭对像 CopyTo 方法 使用方法如下 Object.CopyTo(destStream,[CharNumber]) 说明:将对像的数据...
标签: ASP
ASP 组件 FILE对象 当前,基于浏览器/服务器模式的应用比较流行。当用户需要将文件传输到服务器上时,常用方法之一是运行FTP服务器并将每个用户的FTP默认目录设为用户的Web主目录,这样用户就能运行FTP客户程序并上传文件到指定的 Web目录。这就要求用户必须懂得如何使用FTP客户程序。因此,这种解决方案仅对熟悉FTP且富有经验的用...
标签: ASP
  Call Com_CreatValidCode("ValidCode") Sub Com_CreatValidCode(pSN) 'Author: Layen 'QQ: 84815733 'E-mail: support@ssaw.net ' 禁止缓存 Response.Expires = -9999 Response.AddHeader "Pragma","no-cache" Response.AddHeader "cache-ctrol","no-cache" Response.ContentType = "Image/BMP" Randomize Dim i, ii, iii Const...

经验教程

487

收藏

24
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部