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

时间: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
  • asp之家 网络编程 m.aspxhome.com