方式一
<%@LANGUAGE="VBSCRIPT" CODEPAGE="950"%>
<%
'前一頁URL<A href="download_file.asp?root=/image/&File=test.jpg" target=_blank>download_file.asp</A>
'download_file.asp 強制下載頁
Response.Buffer = true
Response.Clear
dim url
Dim fso,fl,flsize
dim Dname
Dim objStream,ContentType,flName,isre,url1
'*********************************************調用時傳入的下載檔案名
root=request("root") '路徑
Dname=trim(request("file")) '檔名
'******************************************************************
If Dname<>"" Then
'******************************下載檔存放的服務端目錄
url=server.MapPath(root&Dname)
'***************************************************
End If
Set fso=Server.CreateObject("Scripting.FileSystemObject")
Set fl=fso.getfile(url)
flsize=fl.size
flName=fl.name
Set fl=Nothing
Set fso=Nothing
%>
<%
Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = 1
objStream.LoadFromFile url
Select Case lcase(Right(flName, 4))
Case ".asf"
ContentType = "video/x-ms-asf"
Case ".avi"
ContentType = "video/avi"
Case ".doc"
ContentType = "application/msword"
Case ".zip"
ContentType = "application/zip"
Case ".xls"
ContentType = "application/vnd.ms-excel"
Case ".gif"
ContentType = "image/gif"
Case ".jpg", "jpeg"
ContentType = "image/jpeg"
Case ".wav"
ContentType = "audio/wav"
Case ".mp3"
ContentType = "audio/mpeg3"
Case ".mpg", "mpeg" 'liehuo.net
ContentType = "video/mpeg"
Case ".rtf"
ContentType = "application/rtf"
Case ".htm", "html"
ContentType = "text/html"
Case ".txt"
ContentType = "text/plain"
Case Else
ContentType = "application/octet-stream"
End Select
Response.AddHeader "Content-Disposition", "attachment; filename=" & flName
Response.AddHeader "Content-Length", flsize
Response.Charset = "UTF-8"
Response.ContentType = ContentType
Response.BinaryWrite objStream.Read
Response.Flush
response.Clear()
objStream.Close
Set objStream = Nothing
%>
-----------------------------------------------------------------------------------------------------------------
第二種方式
<%
path = "...完整的檔案路徑"
fnm = "...下載的預設檔名"
set streamobj = server.createobject("ADODB.Stream")
set fs = server.createobject("scripting.filesystemobject")
if fs.fileexists(path) = true then
response.contenttype = "application/x-msdownload"
response.addheader "content-disposition" , "attachment;filename=" & fnm
streamobj.mode = 3
streamobj.type = 1
streamobj.open
streamobj.loadfromfile path
binary_txt = streamobj.read(-1)
response.binarywrite binary_txt
binary_txt = Empty
streamobj.close
else
response.write "錯誤!你所指定的檔案來源並不存在!"
end if
set fs = nothing
set streamobj = nothing
%>