让图片和文件直接下载而不打开

这样可以提示打开或者下载,而不是启动关联的软件来打开文件,连接的时候需要传2个参数filepath和filename
复制内容到剪贴板
代码:
<%
Const ForReading=1
Const TristateTrue=-1
Const FILE_TRANSFER_SIZE=16384
Response.Buffer = True
Function TransferFile(path, mimeType, filename)
Dim objFileSystem, objFile, objStream
Dim char
Dim sent
send=0
TransferFile = True
Set objFileSystem = Server.CreateObject("Scripting.FileSystemObject")
Set objFile = objFileSystem.GetFile(Path)
Set objStream = objFile.OpenAsTextStream(ForReading, TristateTrue)
Response.AddHeader "content-type", mimeType
Response.AddHeader "Content-Disposition","attachment;filename="&filename
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
Dim path, mimeType, sucess, attfile
path = Server.MapPath(Request("filepath"))
mimeType = "application/octec-stream"
attfile = Request("filename")
sucess = TransferFile(path, mimeType, attfile)
Response.End
%>
 
在同一個頁面也可以這樣
.......................
Dim path, mimeType, sucess, attfile
path = Server.MapPath("aqua.swf")
mimeType = "application/octec-stream"
attfile = "aqua.swf"
if request("down")=1 then
sucess = TransferFile(path, mimeType, attfile)
Response.End
end if
%>
<a href="?down=1" >點擊下載</a>

有话要说