让自定义文件下载支持断点续传(HTTP_RANGEAd…
自定义文件下载基本上用在以下几处
1.浏览器已知类型,如Avi,Doc等如果本地安装了关联程序就会自动在浏览器上打开
2.权限管理,有时候不是所有的人都允许下载,所以需要在下载的时候进行判断
3.经常需要将特殊文件搁到虚拟目录访问不到的地方,以及asp和asa等文件的下载
大家经常用的是Adodb.Stream,但这时就有个缺陷,就是不支持断点续传了。
经常看到flashget中是红脸(即不支持断点续传)其实支持断点续传也很简单。如下:
利用读取HTTP_RANGE,然后对Adodb.Stream进行定位,然后再输出
(原来代码中本来还有Content-Length的设置,理论上应该有,但实践上可省去)
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")
这时候你会看到红脸变笑脸了,一般用在大文件的下载
本地FlashGet测试通过,并用fc比较下载后的文件和原先的文件
FC: 找不到相异处
- · 用SELECT创建记录和表
- · 关于SQL的存储过程一个悬而未决的老问题
- · 个人主页的数据库解决方案ASP
- · 连接WEB数据库的ADO性能提高技巧
- · ASP如何使用MYSQL数据库?
- · ASP.NET连SQL7接口源代码
- · 关于图片与文本同存在数据库中的具体思路
- · 一个图片数据的存和取的示例
- · ASP中使用SQL时的数据类型转换
- · T-SQL排序规则的优先顺序
- · T-SQL数据类型的优先顺序
- · SQLSELECT语句
- · 不通过dsn访问sqlserver
- · 袖珍数据库连接查询手册
- · SQLServer存储过程编程经验技巧
- · 在服务器端控制网页
- · ASP.NET中在线用户统计
- · 用ASP.NET和XML做的新闻系统
- · ASP.NET中自定义DataGrid分页设置的实现
- · ASP.NET中Cookie编程简明参考
- · 简单快捷实现ASP在线发邮件功能
- · 纯ASP代码生成图表函数1——柱状图调用示例
- · asp中随机生成文件名的函数
- · 18位身份证标准的详细规定,包括校验位的计算…
- · 加速ASP程序的显示速度
- · ASP提速技巧五则
- · ASP网页模板的应用
- · 风格模板初级不完全修改教程
- · len(),lift(),right()不能正常识别中文的解决…
- · 判断Cookies是否处于开启状态
- · 无组件图片与文本同步存入数据库的最简单的办…
- · 将SAX加入我们的ASP应用中(2)
- · 将SAX加入我们的ASP应用中(1)
- · Asp中Global.asa的应用(二)
- · Asp中Global.asa的应用(-)
- · 将SAX加入我们的ASP应用中
- · 限制同一表单被多次提交
- · 禁用浏览器后退按钮
