网络编程
位置:首页>> 网络编程>> Asp编程>> 让自定义文件下载支持断点续传

让自定义文件下载支持断点续传

  发布时间:2009-03-11 19:45:00 

标签:断点续传,自定义,下载,文件,Adodb.Stream

  大家经常用的是Adodb.Stream,但这时就有个缺陷,就是不支持断点续传了。

  经常看到flashget中是红脸(即不支持断点续传)其实支持断点续传也很简单。如下:

  利用读取HTTP_RANGE,然后对Adodb.Stream进行定位,然后再输出(原来代码中本来还有Content-Length的设置,理论上应该有,但实践上可省去)

asp下载函数如下:

function dl(f,n)
on error resume next
Set S=CreateObject("Adodb.Stream") 
S.Mode=3 
S.Type=1 
S.Open 
S.LoadFromFile(f)
if Err.Number>0 then 
Response.Status="404"
else
Response.ContentType="application/octet-stream"
Response.AddHeader "Content-Disposition:","attachment; filename=" & n
Range=Mid(Request.ServerVariables("HTTP_RANGE"),7)
if Range="" then
Response.BinaryWrite(S.Read)
else
S.position=Clng(Split(Range,"-")(0))
Response.BinaryWrite(S.Read)
End if
end if
Response.End
end function

 调用方法:

参数:文件路径和下载文件名

call dl(Server.MapPath("c.avi"),"c.avi")

这时候你会看到红脸变笑脸了。

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com