让自定义文件下载支持断点续传
时间:2009-03-11 19:45:00
大家经常用的是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")
这时候你会看到红脸变笑脸了。
标签:断点续传,自定义,下载,文件,Adodb.Stream
0
投稿
猜你喜欢
整理一个asp多级树型分类问题的解决方法
2007-10-17 18:38:00
W3C 发布 XMLHttpRequest 工作草图
2008-04-28 13:00:00
如何实现html表格里隔行换色
2007-10-19 13:42:00
mysql 主从服务器的简单配置
2009-09-06 12:06:00
怎样设计网站首页?(解答)
2007-11-04 18:56:00
使用CSS3和RGBa创建超酷的按钮
2009-06-02 12:41:00
实现div可编辑的常见方法
2007-11-06 12:02:00
asp组件上传
2010-05-27 12:16:00
解决大字段在Form中Post出错的方法
2008-04-17 14:00:00
delete from 表名与truncate table 表名区别
2012-11-30 20:31:37
让Entity Framework支持MySql数据库
2010-12-14 15:22:00
css网页下拉菜单制作方法(1):基本原理
2007-02-03 11:39:00
可以输入的下拉菜单
2009-01-04 14:21:00
发一个自己用的JS框架(试用版^_^)
2011-09-11 18:53:24
网页设计:巧用记事本编辑网页
2008-02-05 09:00:00
解决用CSS控制DIV居中失效的问题
2010-04-05 21:53:00
在ASP中使用类,实现模块化
2008-10-15 14:57:00
MySQL Order By用法
2011-01-04 19:50:00
汇总数据库备份 还原 压缩与数据库转移的方法
2009-01-19 14:07:00
Asp函数介紹(37个常用函数)
2011-04-11 11:06:00