当前位置: 代码迷 >> vbScript >> 不懂,不懂。看得懂每一句的意思,但不知道是什么原理?(文件下载)解决办法
  详细解决方案

不懂,不懂。看得懂每一句的意思,但不知道是什么原理?(文件下载)解决办法

热度:7938   发布时间:2013-02-26 00:00:00.0
不懂,不懂。看得懂每一句的意思,但不知道是什么原理?(文件下载)

<%Dim Stream
Dim Contents
Dim FileName
Dim TrueFileName
Dim FileExt
Const adTypeBinary = 1
Response.Clear
Response.ContentType = "application/ms-download"
Response.AddHeader "content-disposition", "attachment; filename="&softname&"." & F_Ext & ""
Set Stream = server.CreateObject("ADODB.Stream")
Stream.Type = adTypeBinary
Stream.Open
Stream.LoadFromFile Server.MapPath(""&downurl&"")
While Not Stream.EOS
Response.BinaryWrite Stream.Read(1024 * 64)
Wend
Stream.Close
Set Stream = Nothing
Response.Flush
Response.End
end if
rs.close
set rs=nothing
%> 
问题:1、“adTypeBinary”是什么值啊。2、代码的表面意思知道了,但不知道是怎样的过程,整个下载程序的流程是怎样分布设定的?

------解决方案--------------------------------------------------------
1. 代码里有 Const adTypeBinary = 1 
2. 整个过程涉及到http协议, 可以参考 http://www.ietf.org/rfc/rfc2183.txt

------解决方案--------------------------------------------------------
基本原理是这样的:设置向client输出的内容类型并设置头信息,然后使用 流 形式以二进制方式打开并读取服务器上指定的文件,再向client端的缓存输出整个文件的内容;也即把服务器上的文件内容以二进制的流的形式向客户端输出就可以了

Stream.Type = adTypeBinary = 1 指定以2进制流形式
  相关解决方案