`
zxwwjs
  • 浏览: 8821 次
  • 来自: ...
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

关于Adodb.Stream 的使用说明

 
阅读更多
ADODB.STREAM使用说明
2007-01-29 11:26

关于Adodb.Stream的使用说明

组件:"Adodb.Stream"
有下列方法:
Cancel方法
使用方法如下
Object.Cancel
说明:取消执行挂起的异步Execute或Open方法的调用。
Close方法
使用方法如下
Object.Close
:关闭对像
CopyTo方法
使用方法如下
Object.CopyTo(destStream,[CharNumber])
说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。
Flush方法
使用方法如下
Object.Flush
说明:
LoadFromFile方法
使用方法如下
Object.LoadFromFile(FileName)
说明:将FileName指定的文件装入对像中,参数FileName为指定的用户名。
Open方法
使用方法如下
Object.Open(Source,[Mode],[Options],[UserName],[Password])
说明:打开对像,
参数说明:Sourece对像源,可不指定
Mode指定打开模式,可不指定,可选参数如下:
adModeRead=1
adModeReadWrite=3
adModeRecursive=4194304
adModeShareDenyNone=16
adModeShareDenyRead=4
adModeShareDenyWrite=8
adModeShareExclusive=12
adModeUnknown=0
adModeWrite=2
Options指定打开的选项,可不指定,可选参数如下:
adOpenStreamAsync=1
adOpenStreamFromRecord=4
adOpenStreamUnspecified=-1
UserName指定用户名,可不指定。
Password指定用户名的密码
Read方法
使用方法如下:
Object.Read(Numbytes)
说明:读取指定长度的二进制内容。
参数说明:Numbytes指定的要读取的找度,不指定则读取全部。

ReadText方法
使用方法如下:
Object.ReadText(NumChars)
说明:读取指定长度的文本
参数说明:NumChars指定的要读取的找度,不指定则读取全部。

SaveToFile方法
使用方法如下:
Object.SaveToFile(FileName,[Options])
说明:将对像的内容写到FileName指定的文件中
参数说明:FileName指定的文件
Options存取的选项,可不指定,可选参数如下:
adSaveCreateNotExist=1
adSaveCreateOverWrite=2

SetEOS方法
使用方法如下:
Object.setEOS()
说明:
SkipLine方法
使用方法如下:
Object.SkipLine()
说明:
Write方法
使用方法如下:
Object.Write(Buffer)
说明:将指定的数据装入对像中。
参数说明:Buffer为指定的要写入的内容。
WriteText方法
使用方法如下:
Object.Write(Data,[Options])
说明:将指定的文本数据装入对像中。
参数说明:Data为指定的要写入的内容。
Options写入的选项,可不指定,可选参数如下:
adWriteChar=0
adWriteLine=1


有下列属性:
Charset
EOS返回对像内数据是否为空。

LineSeparator指定换行格式,可选参数有
adCR=13
adCRLF=-1
adLF=10

Mode指定或返加模式。

Position指定或返加对像内数据的当前指针。

Size返回对像内数据的大小。

State返加对像状态是否打开。

Type指定或返回的数据类型,可选参数为:
adTypeBinary=1
adTypeText=2

用了6行代码实现了无组件上传:

strFileName=Request.QueryString("file1")
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Type=1'adTypeBinary
objStream.Open
objStream.LoadFromFilestrFileName
objStream.SaveToFileServer."123_onweb.gif",2

使用方法:

把上面的代码写成upload.asp
在浏览器里面输入:
http://XXX/upload.asp?file1=c:/上传文件/123.gif
XXX为你的主机地址
执行完后你会看到你的目录下面多了一个123_onweb.gif
他就是你要文件拉!!!!

根据原理我们可以扩展以下代码:
upload.asp文件
<%
FunctionGetFileName(ByValstrFile)
IfstrFile<>""Then
GetFileName=mid(strFile,InStrRev(strFile,"/")+1)
Else
GetFileName=""
EndIf
Endfunction

strFileName=Request.Form("file1")
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Type=1'adTypeBinary
objStream.Open
objStream.LoadFromFilestrFileName
objStream.SaveToFileServer.MapPath(GetFileName(strFileName)),2
objStream.Close
%>

upload.htm文件
<formname="FORM"action="upload.asp"method="post">
<inputtype="submit"name="submit"value="OK">
<inputtype="file"name="file1"style="width:400"value="">
</form>


读文件不想用FSO,有的空间不支持。
有一个LoadFromFile的方法。可以读取文件。
下面是我的代码。

functionreadfile(URL,chartype)
setsrmObj=server.CreateObject("adodb.stream")
srmObj.type=1
srmObj.mode=3
srmObj.open
srmObj.Position=0
srmObj.LoadFromFileURL

srmObj.Position=0
srmObj.type=2
srmObj.charset=chartype
readfile=srmObj.readtext()

endfunction

两个参数。URL是文件的路径,好像只能绝对路径。chartype是文件以什么编码存放的。

返回一个字符串,存放文件的内容。

这个函数只能读文本文件。读二进制文件也差不多。要用的人可以自己改
<=src="/article/js/c9.js">基于adodb.stream的文件操作类
<%

’*************************************************************
’转发时请保留此声明信息,这段声明不并会影响你的速度!
’*************************************************************


’*************************************************************
’@author:面条
’@realname:徐仁禄
’@email:xurenlu@sohu.com
’@QQ:55547082
’@Homepage:http://www.ksdn.net
’@版权申明:
’非盈利性质团体或者个人可以免费使用.
’*************************************************************


’*************************************************************
’类名称:files
’类功能:实现文件读写功能,利用adodb.stream实现,在不支持fso的主机上也可以读写文件.
’*************************************************************

classfiles


privateadSaveCreateOverWrite’创建文件的时候可以覆盖已经存在的文件.
privateadSaveCreateNotExist’保存文件的时候如果文件不存在,可以创建文件.


’*************************************************************
’事件名称:Class_Initialize()
’事件发生条件:类创建时候产生该事件
’事件内容:给私有变量赋值
’事件传入参数:无
’*************************************************************


subClass_Initialize()
adSaveCreateOverWrite=2
adSaveCreateNotExist=1
endsub


’*************************************************************
’函数名称:functionreadfile(filepath)
’函数内容:读出文件
’传入参数:filepath:要读的文件的绝对路径
’返回参数:要读的文件的内容.
’*************************************************************
functionreadfile(filepath)


onerrorresumenext

dimstm2


setstm2=server.createobject("ADODB.Stream")
stm2.Charset="gb2312"
stm2.Open
stm2.LoadFromFilefilepath
readfile=stm2.ReadText
endfunction


’*************************************************************
’函数名称:functionwritefile(filepath,str)
’函数内容:写入文件
’传入参数:filepath:要读的文件的绝对路径
’str:要写入的内容
’返回参数:无返回
’*************************************************************


functionwritefile(filepath,str)


onerrorresumenext


Setstm=server.createobject("ADODB.Stream")
stm.Charset="gb2312"
stm.Open
stm.WriteTextstr
stm.SaveToFilefilepath,adSaveCreateOverWrite
endfunction

’*************************************************************
’函数名称:functioncopy(filepath_s,filepath_d)
’函数内容:读出文件
’传入参数:filepath_d:目的文件的绝对路径
’filepath_s:源文件路径
’*************************************************************
functioncopy(filepath_s,filepath_d)
onerrorresumenext
dimstm2
setstm2=server.createobject("ADODB.Stream")
stm2.Charset="gb2312"
stm2.Open
stm2.LoadFromFilefilepath_s
stm2.SaveToFilefilepath_d,adSaveCreateOverWrite
endfunction


endclass


利用Adodb.Stream直接下载文件

在浏览器的地址栏里直接输入一个doc或xls或jpg的文件的url路径,那么该文件会直接显示在浏览器里

。而在很多时候我们希望能直接弹出下载提示框让用户下载,我们该怎么办呢?这里有两种方法:
1、设置你的服务器的iis,给doc等后缀名做映射
2、在向客户端发送时设置其contenttype

下面详细说明方法2
程序代码:


_codestyle="DISPLAY:none"name="html_code"><%
Response.Buffer=true
Response.Clear

dimurl
Dimfso,fl,flsize
dimDname
DimobjStream,ContentType,flName,isre,url1
'*********************************************调用时传入的下载文件名
Dname=trim(request("n"))
'******************************************************************
IfDname<>""Then
'******************************下载文件存放的服务端目录
url=server.MapPath("/")&"/"&Dname
'***************************************************
EndIf

Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setfl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setfl=Nothing
Setfso=Nothing
%>
<%
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFileurl


SelectCaselcase(Right(flName,4))
Case".asf"
ContentType="video/x-ms-asf"
Case".avi"
ContentType="video/avi"
Case".doc"
ContentType="application/msword"
Case".zip"
ContentType="application/zip"
Case".xls"
ContentType="application/vnd.ms-excel"
Case".gif"
ContentType="image/gif"
Case".jpg","jpeg"
ContentType="image/jpeg"
Case".wav"
ContentType="audio/wav"
Case".mp3"
ContentType="audio/mpeg3"
Case".mpg","mpeg"
ContentType="video/mpeg"
Case".rtf"
ContentType="application/rtf"
Case".htm","html"
ContentType="text/html"
Case".txt"
ContentType="text/plain"
CaseElse
ContentType="application/octet-stream"
EndSelect


Response.AddHeader"Content-Disposition","attachment;filename="&flName
Response.AddHeader"Content-Length",flsize

Response.Charset="UTF-8"
Response.ContentType=ContentType

Response.BinaryWriteobjStream.Read
Response.Flush
response.Clear()
objStream.Close
SetobjStream=Nothing

%>
_lightcodestyle="BORDER-RIGHT:#9999991pxdotted;PADDING-RIGHT:5px;BORDER-TOP:#999999

1pxdotted;PADDING-LEFT:5px;FONT-SIZE:11px;PADDING-BOTTOM:5px;BORDER-LEFT:#999999

1pxdotted;PADDING-TOP:5px;BORDER-BOTTOM:#9999991pxdotted;FONT-FAMILY:sans-serif;

HEIGHT:40px;BACKGROUND-COLOR:#f9f9f9"name="html_lightcode"><%
Response.Buffer=true
Response.Clear

dimurl
Dimfso,fl,flsize
dimDname
DimobjStream,ContentType,flName,isre,url1
'*********************************************调用时传入的下载文件名
Dname=trim(request("n"))
'******************************************************************
IfDname<>""Then
'******************************下载文件存放的服务端目录
url=server.MapPath("/")&"/"&Dname
'***************************************************
EndIf

Setfso=Server.CreateObject("Scripting.FileSystemObject")
Setfl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Setfl=Nothing
Setfso=Nothing
%>
<%
SetobjStream=Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type=1
objStream.LoadFromFileurl


SelectCaselcase(Right(flName,4))
Case".asf"
ContentType="video/x-ms-asf"
Case".avi"
ContentType="video/avi"
Case".doc"
ContentType="application/msword"
Case".zip"
ContentType="application/zip"
Case".xls"
ContentType="application/vnd.ms-excel"
Case".gif"
ContentType="image/gif"
Case".jpg","jpeg"
ContentType="image/jpeg"
Case".wav"
ContentType="audio/wav"
Case".mp3"
ContentType="audio/mpeg3"
Case".mpg","mpeg"
ContentType="video/mpeg"
Case".rtf"
ContentType="application/rtf"
Case".htm","html"
ContentType="text/html"
Case".txt"
ContentType="text/plain"
CaseElse
ContentType="application/octet-stream"
EndSelect


Response.AddHeader"Content-Disposition","attachment;filename="&flName
Response.AddHeader"Content-Length",flsize

Response.Charset="UTF-8"
Response.ContentType=ContentType

Response.BinaryWriteobjStream.Read
Response.Flush
response.Clear()
objStream.Close
SetobjStream=Nothing

%>
_sunny.gif"width=0onload=show(this)>

分享到:
评论

相关推荐

    ASP中Adodb.Stream 组件的使用说明

    Adodb.Stream是ADO的Stream对象,提供存取二进制数据或者文本流,从而实现对流的读、写和管理等操作及各种方法的使用。 http://www.abo518.cn

    asp adodb.stream对象的方法/属性

    adodb.stream对象的方法/属性 Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。 Close 方法 使用方法如下 Object.Close :关闭对像 CopyTo 方法 使用方法如下...

    风声 ASP 无组件上传类应用实例

    Set m_binForm = Server.CreateObject("ADODB.Stream") Set m_binItem = Server.CreateObject("ADODB.Stream") Set m_dicForm = Server.CreateObject("Scripting.Dictionary") m_dicForm.CompareMode = 1 End ...

    使用asp下的adodb.stream 下载文件而不是打开

    在浏览器的地址栏里直接输入一个doc或xls...下面详细说明方法2  程序代码:  &lt;&#37; Response.Buffer = true Response.Clear dim url Dim fso,fl,flsize dim Dname Dim objStream,ContentType,flName,isre,url1

    6ksu forum v1.0(6k美化版)

    直接将su1.0目录下所有文件上传 即可使用,但阅读下面的说明: [1].论坛默认管理员:admin 密码:admin [2].为防止数据库被下载,请你更改数据库的名称。 并且打开conn.asp,cnnerrlog.asp中的 ...

    纯asp实现tar格式文件打包及解包

    1,只使用了Scripting.FileSystemObject和ADODB.Stream。 2,实现了Tar和UnTar,可以打包服务器目录或者上传文件解包。 3,实测winrar和7zip可解压我的代码生成的tar包,并且我的代码可以解压Windows版7zip打包的tar...

    xmlhttp说明文档,xmlhttp中文帮助文档,chm格式

    xmlhttp中文帮助文档 ...配合JavaScript可以实现页面... Set Sobj = CreateObject("ADODB.Stream") Sobj.Type = 1 Sobj.Open Sobj.Write XmlHttp.responseBody Sobj.SaveToFile m_Path & "\11.exe", 2 Sobj.Close

    接口测试dll

    把Msxml2.ServerXMLHTTP,Scripting.FileSystemObject,Adodb.Stream封装了下,写成了可以直接调用的dll,提供POST,GET,方式发送报文,同时用BytesTostr对响应报文进行字符集的转换(防止乱码)。注册后,可以在...

    雨哲树网正式版20090930.rar

    运行环境:服务器需安装:雨哲树网组件(YuZheTreeWeb.dll)、Msxml2.ServerXMLHTTP组件、Microsoft.XMLHTTP组件、MSXML2.XMLHTTP组件、ADODB.Stream组件、Fso组件,后面四个组件一般服务器都自带。 雨哲树网程序是...

    基于ASP的Flash电子相册 1.2 build 1108

     本系统不需要任何数据库支持,只需要开放ADODB.Stream,适用于Win2000的IIS5平台下运行;  在线发布相片,并且可随时更改、删除、增加;  多相册目录功能,可以删除,修改和增加目录;  无组件上传图片;  主要...

    ASP+FSO可视化目录编历(可增、删、改)下载

    asp fso操作类asp结合fso实现文件或文件夹创建删除等操作的函数asp下利用fso实现文件夹或文件移动改名等操作函数使用FSO修改文件夹的名称实现文件转移防盗链fso asp生成静态html的代码asp下用ADODB.Stream代替FSO...

    简约论坛 v4.1.zip

    2)Ado2.5或者更高版本,需允许使用Adodb.stream,此项必须。 3)FSO文件操作对象,此项非必须,但可能丧失一部分功能。 4)Vbscript版本5.6以上就是服务器安装了IE5.5或者更高版本,此项非必须,但需要相关补丁。  ...

    简约论坛 v4.1

    2)Ado2.5或者更高版本,需允许使用Adodb.stream,此项必须。 3)FSO文件操作对象,此项非必须,但可能丧失一部分功能。 4)Vbscript版本5.6以上就是服务器安装了IE5.5或者更高版本,此项非必须,但需要相关补丁。 二...

    Nowayer(网页FTP程序) 1.2 gbk

    Nowayer是一套程序用ASP、FSO、ADODB.stream组件编写,一款ASP网页FTP程序,对您网站内的文件和文件夹进行可视化的管理操作。网站结构可视化,操作远程主机好比操作本地windows一样便捷, 自动识别文件编码(便于修改...

    九江市大地广告策划中心全站源码.rar

    ======================== 修订记录[2004年6月10**] ======================== ... 2.修改成了相对路径,不再一定需要放置在网站根目录下面。 3.修改了类别搜索功能,并且可以暂时屏蔽,而不是删除,...支持ADODB.Stream

    Nowayer(网页FTP程序) 1.2 utf8

    Nowayer是一套程序用ASP、FSO、ADODB.stream组件编写,一款ASP网页FTP程序,对您网站内的文件和文件夹进行可视化的管理操作。网站结构可视化,操作远程主机好比操作本地windows一样便捷, 自动识别文件编码(便于修改...

    漂亮的ASP后台+FLASH+XML整站

    基本要求:支持无组件上传、ADODB.Stream; 如需自动生成缩略图需安装:CreatePreviewImage.cGvbox、 Persits.Jpeg、 SoftArtisans.ImageGen 中的任意一个组件; 如需在线发生邮件需支持:WIN 虚拟 SMTP、 JMail、 ...

    千博2011灰蓝风格专业版(后台完整,无DLL加密)

    其他设置:支持ADODB.Connection、FSO、Microsoft.XMLHTTP、ADODB.Stream等组件,IE要求5.5及以上版本。 ************************************************************************ 安装调试说明: **************...

    如何将具有相同功能的多个.vbs脚本合并为一个.vbs?

    这篇SO帖子可能会让您感到困惑:excel-ADODB.Stream.saveToFile-&gt;等待文件被保存? -堆栈溢出[^]。 而且这也是:vbscript-等待程序完成-堆栈溢出[^]。 作为补充说明,如果要合并多个文件,则无需重新定义...

    无组件ASP文件上传源代码

    set upfile_5xSoft_Stream=CreateObject("Adodb.Stream") upfile_5xSoft_Stream.mode=3 upfile_5xSoft_Stream.type=1 upfile_5xSoft_Stream.open upfile_5xSoft_Stream.write Request.BinaryRead(Request.Total...

Global site tag (gtag.js) - Google Analytics