快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

让自定义文件下载支持断点续传(HTTP_RANGE ADODB.STREAM)

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: 找不到相异处
返回类别: 教程
上一教程: ASP技巧集锦(官方权威版)-6
下一教程: 不刷新页面查询数据库中数据的方式-XML方式

您可以阅读与"让自定义文件下载支持断点续传(HTTP_RANGE ADODB.STREAM)"相关的教程:
· 让自定义文件下载支持断点续传
· 利用adodb.stream直接下载任何后缀的文件(防盗链)
· 利用ADODB.STREAM使用浏览器下载服务器文件
· 使用XMLHTTP和ADODB.STREAM取得远程文件并保存到本地
· 实现文件下载而不是由IE打开的代码
    微笑服务 优质保证 索取样品