ADODB.Stream的⽤法实例程序代码:
内容: download.asp?file=相对路径的⽂件
就可以把这个⽂件下载下来
<%
call downloadFile(replace(replace(Request("file"),"\",""),"/",""))
Function downloadFile(strFile)
' make sure you are on the latest MDAC version for this to work
' -------------------------------------------------------------
' get full path of specified file
strFilename = server.MapPath(strFile)
' clear the buffer
Response.Buffer = True
Response.Clear
'create stream
Set s = Server.CreateObject("ADODB.Stream")
s.Open
'Set as binary
s.Type = 1
'load in the file
on error resume next
' check the file exists
Set fso = Server.CreateObject("Scripting.FileSystemObject")
if not fso.FileExists(strFilename) then
Response.Write("<h1>Error:</h1>" & strFilename & " does not exist<p>") Response.End
end if
' get length of file
Set f = fso.GetFile(strFilename)
intFilelength = f.size
s.LoadFromFile(strFilename)
if err then
Response.Write("<h1>Error: </h1>" & err.Description & "<p>")
Response.End
end if
' send the headers to the users browser
Response.AddHeader "Content-Disposition", "attachment; filename=" & f.name Response.AddHeader "Content-Length", intFilelength
Response.CharSet = "UTF-8"
Response.ContentType = "application/octet-stream"
' output the file to the browser
Response.BinaryWrite s.Read
Response.Flush
' tidy up
s.Close
Set s = Nothing
End Function
%>
ASP中利⽤ADODB.Stream对象将字节流转换为字符流
程序代码:
内容: ASP中利⽤ADODB.Stream对象将字节流转换为字符流
'--------------------------------------------------------------------
' ⼆进制转字符串
'
' ⼊⼝参数:字节流
' 函数返回:字符串
' Code By:Madpolice 2002-12-20
' 利⽤ ADODB.Stream 对象,速度⽐原来的字符替换法快了n倍,n≈30!!)
'--------------------------------------------------------------------
'下⾯的常量是函数⽤到的,因为我在函数外⾯已经定义过了,因此不在这⾥重复定义'---- StreamTypeEnum Values ----
'Const adTypeBinary = 1
'Const adTypeText = 2
Function Bytes2bStr(vin)
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream") '建⽴⼀个流对象With BytesStream
.Type = adTypeText '设置流对象的类型为字符流
.Open '打开流对象
.WriteText vin '把vin写⼊流对象中
.Position = 0 '设置流对象的起始位置是0,也就是开头
'这个操作必须做,为什么我也不知道,失败了n次得出的结论
'如果不进⾏这个操作,下⾯设置Charset属性就出错
.Charset = "GB2312" '设置流对象的编码⽅式为GB2312
.Position = 2 '设置流对象的起始位置是2(过滤掉开始的⼀个控制字符 '这个控制字符是WriteText⽅法按默认属性Charset="Unicode"
'读⼊数据的时候⾃动加到数据开头的,字符的值是FF3F
'这个控制字符占2字节,所以Position设置为2
'表⽰略过2个字节,下⾯的ReadText⽅法从Position开始读数据
StringReturn = .ReadText '把流对象的内容保存在StringReturn变量中
.close '关闭流对象
End With
Set BytesStream = Nothing '销毁流对象
Bytes2bStr = StringReturn
End Function
'--------------------------------------------------------------------
内容: ⽤Adodb.Stream将以⼆进制⽅式保存在数据库中的⽂件保存到硬盘
对于上传的数据库中的⽂件有的时候需要保存成硬盘上的⽂件,下⾯的代码以ACCESS数据库为例,演⽰怎样通过Adodb.Stream将⽂件保存到硬盘
表:Demo的结构
=======================================
id: ⾃动编号
filename:⽂本
data: OLE 对象
代码
=======================================
<%
Dim Conn,ConnStr,Rs,Sql,MyStream
ConnStr="DBQ=" + Server.Mappath("Demo.mdb") + ";DRIVER={Microsoft Access Driver (*.mdb)};" Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open ConnStr
Sql = "select * from demo where id=1"
Set Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql,Conn,1,3
Set MyStream=Server.CreateObject("Adodb.Stream")
MyStream.Type = 1
MyStream.Open
MyStream.Write Rs("data").GetChunk(rs("data").ActualSize-78)
MyStream.SaveToFile "c:\" & Rs("fileName")
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%>
⽤Adodb.Stream将以⼆进制⽅式保存在数据库中的⽂件保存到硬盘
程序代码:
内容: ⽤Adodb.Stream将以⼆进制⽅式保存在数据库中的⽂件保存到硬盘
对于上传的数据库中的⽂件有的时候需要保存成硬盘上的⽂件,下⾯的代码以ACCESS数据库为例,演⽰怎样通过Adodb.Stream将⽂件保存到硬盘
表:Demo的结构
=======================================
id: ⾃动编号
filename:⽂本
data: OLE 对象
代码
=======================================
<%
Dim Conn,ConnStr,Rs,Sql,MyStream
ConnStr="DBQ=" + Server.Mappath("Demo.mdb") + ";DRIVER={Microsoft Access Driver (*.mdb)};"
Set Conn = Server.CreateObject("Adodb.Connection")
Conn.Open ConnStr
Sql = "select * from demo where id=1"
Set Rs = Server.CreateObject("Adodb.RecordSet")
Rs.Open Sql,Conn,1,3
Set MyStream=Server.CreateObject("Adodb.Stream")
MyStream.Type = 1
MyStream.Open
MyStream.Write Rs("data").GetChunk(rs("data").ActualSize-78)
MyStream.SaveToFile "c:\" & Rs("fileName")
Rs.Close
Set Rs = Nothing
Conn.Close
Set Conn = Nothing
%>
组件: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 =4194304exists的用法
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
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论