ASP实现点击链接直接下载文件的代码

ASP 1514 0 2013-12-20

ASP实现点击链接直接下载文件的代码
在ie中点开图片或文档的链接里,IE会自动打开它,有时候这种功能并不是我们所需的,虽然我们可以提醒用户用鼠标右键-->"目标另存为...."命令来下载文档或图片,但这样毕竟不太方便,本文是利用FSO及Stream方法直接实现IE直接下载文档。
 

    <%@ language=vbscript codepage=65001%>   
    <%   
    'Filename must be input   
    if Request("Filename")="" then   
    response.write "<h1>Error:</h1>Filename is empty!<p>"  
    else   
    call downloadFile(replace(replace(Request("Filename"),"",""),"/",""))  
    Function downloadFile(strFile)  
    ' make sure you are on the latest MDAC version for this to work  
    ' get full path of specified file  
    strFilename = server.MapPath(strFile)  
    ' clear the buffer  
    Response.Buffer = True  
    Response.Clear  
    ' create stream  
    Set s = Server.CreateObject("ADODB.Stream")  
    s.Open  
    ' Set as binary  
    s.Type = 1  
    ' load in the file  
    on error resume next  
    ' check the file exists  
    Set fso = Server.CreateObject("Scripting.FileSystemObject")  
    if not fso.FileExists(strFilename) then  
    Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>")  
    Response.End  
    end if  
    ' get length of file  
    Set f = fso.GetFile(strFilename)  
    intFilelength = f.size  
    s.LoadFromFile(strFilename)  
    if err then  
    Response.Write("<h1>Error: </h1>Unknown Error!<p>")  
    Response.End  
    end if  
    ' send the headers to the users Browse  
    Response.AddHeader "Content-Disposition","attachment; filename="&f.name  
    Response.AddHeader "Content-Length",intFilelength  
    Response.CharSet = "UTF-8"  
    Response.ContentType = "application/octet-stream"   
    ' output the file to the browser   
    Response.BinaryWrite s.Read   
    Response.Flush   
    ' tidy up   
    s.Close   
    Set s = Nothing  
    End Function  
    end if   
    %>  
    <%@ language=vbscript codepage=65001%>
    <%
    'Filename must be input
    if Request("Filename")="" then
    response.write "<h1>Error:</h1>Filename is empty!<p>"
    else
    call downloadFile(replace(replace(Request("Filename"),"",""),"/",""))
    Function downloadFile(strFile)
    ' make sure you are on the latest MDAC version for this to work
    ' get full path of specified file
    strFilename = server.MapPath(strFile)
    ' clear the buffer
    Response.Buffer = True
    Response.Clear
    ' create stream
    Set s = Server.CreateObject("ADODB.Stream")
    s.Open
    ' Set as binary
    s.Type = 1
    ' load in the file
    on error resume next
    ' check the file exists
    Set fso = Server.CreateObject("Scripting.FileSystemObject")
    if not fso.FileExists(strFilename) then
    Response.Write("<h1>Error:</h1>"&strFilename&" does not exists!<p>")
    Response.End
    end if
    ' get length of file
    Set f = fso.GetFile(strFilename)
    intFilelength = f.size
    s.LoadFromFile(strFilename)
    if err then
    Response.Write("<h1>Error: </h1>Unknown Error!<p>")
    Response.End
    end if
    ' send the headers to the users Browse
    Response.AddHeader "Content-Disposition","attachment; filename="&f.name
    Response.AddHeader "Content-Length",intFilelength
    Response.CharSet = "UTF-8"
    Response.ContentType = "application/octet-stream"
    ' output the file to the browser
    Response.BinaryWrite s.Read
    Response.Flush
    ' tidy up
    s.Close
    Set s = Nothing
    End Function
    end if
    %>


上一篇:asp下载文件代码总结

下一篇:ASP格式化数字,使用Formatnumber()与Formatpercent()详解+实例

讨论数量:0

请先登录再发表讨论。 2024-05-02

天涯网魂
3 杠 5 星
TA 的文章
TA 的随言
TA 的资源链