ADODB.Stream

示例:
set stream = Server.CreateObject("ADODB.Stream")
stream.mode = 3      '1-读,2-写,3-读写
stream.type = 1         '1-二进制,2-文本
stream.Open


dataStream.position = index
dataStream.CopyTo stream, count                                           
'将另一 Stream 对象 dataStream 从 index 到 index+count 的数据拷贝到 stream
stream.SaveToFile filePath, 2
'将 stream 数据保存为文件,第二个参数:1-不允许覆盖,2-覆盖写入


stream.Close
set stream = nothing


常用属性和方法:
mode        读写模式,可选值:1-读,2-写,3-读写,其它不常用
type           数据类型,可选值:1-二进制,2-文本
charset     编码方式,可选值:ascii,gb2312
position    数据流位置,表示数据操作从这里开始,第一个位置的值为 0,不是 1。
size        数据流大小(字节)
LoadFromFile        从文件读取数据到 Stream 对象,Stream 对象原有内容将被清空
SaveToFile         将 Stream 对象数据保存为文件,第二个参数:1-不允许覆盖,2-覆盖写入
Open        打开数据流
Close       关闭数据流
Read([长度])            从 Stream 对象中读取二进制数据,不指定长度表示全部读取
ReadText([长度])         从 Stream 对象中读取文本数据,不指定长度表示全部读取
Write(buffer)     将缓存数据写入 Stream 对象
WriteText(data, [option]) 将文本数据写入 Stream 对象,第二个参数:0-字符写入,1-行写入

CopyTo(destStream, count) 将 Stream 对象的指定数据拷贝到 destStream




'***************************************************

利用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



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值