大文件的文件下载方法 【速度不错】

<%@language=VBscript%>  
<%  
Const ForReading=1  
Const TristateTrue=-1  
Const FILE_TRANSFER_SIZE=16384  
Response.Buffer = True  
Dim path, mimeType, sucess,downfilename 
mimeType="text/plain"
 
downfilename="files\t.rmvb"  
path = Server.MapPath(downfilename)  
sucess = TransferFile(path,mimeType,downfilename)  
Response.End  

Function TransferFile(path, mimeType, filename) 
    On error resume next
    Dim objFileSystem, objFile, objStream  
    Dim char  
    Dim sent  
    send=0  
    TransferFile = True  
    Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")  
    Set objFile = objFileSystem.GetFile(Path) 
    If Err Then
       Response.write "下载文件错误,请与管理员联系."
       Response.End
    End If
    '产生随机名字
    TempFileName = Split(path,"\")(Ubound(Split(path,"\")))
   
    Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue)  
    Response.AddHeader "content-type", mimeType  
    response.AddHeader "Content-Disposition","attachment;filename=" & TempFileName  
    Response.AddHeader "content-length", objFile.Size  
    Do While Not objStream.AtEndOfStream  
        char = objStream.Read(1)  
        Response.BinaryWrite(char)  
        sent = sent + 1  
        If (sent MOD FILE_TRANSFER_SIZE) = 0 Then  
          Response.Flush  
          If Not Response.IsClientConnected Then  
          TransferFile = False  
          Exit Do  
          End If  
        End If  
    Loop  
    Response.Flush  
    If Not Response.IsClientConnected Then TransferFile = False  
    objStream.Close  
    Set objStream = Nothing  
    Set objFileSystem = Nothing  
End Function 
%>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值