<%
'蚍蜉中文站提供本程序http://www.pifoo.com
'程序编写飞云(Jspadmin)
'你可以自由引用或转载,但请保留此信息或连接
'本程序的作用是直接下载文件而不是在IE中打开,如htm、txt、asp、jpg文件等
function download(f,n)
'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
Reaponse.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.Postion=Clng(Split(Range,"-")(0))
Response.BinaryWrite(S.Read)
end if
end if
Response.end
end function
dim filename
'filename="index.htm"
filename="1.xls" '设置文件名在这里,也可以通过其他页传递文件名来
call download(server.MapPath(filename),filename)
%>
url:文件地址
set objFso=server.CreateObject("scripting.filesystemobject")
if not objFso.FileExists(url) then
response.write "<script>alert('The file is not exist.');history.back();</script>"
response.end
end if
set fn=objFso.GetFile(url)
flsize=fn.size
flname=fn.name
set fn=nothing
set objFso=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"
ContentType="video/mpeg"
case ".rtf"
ContentType="application/rtf"
case ".htm","html"
ContentType="text/html"
case ".txt"
ContentType="text/plain"
Case ".asp", ".sas", "aspx", "asax", ".mdb"
Response.Write "Download Error!"
Response.end
case else
ContentType="appliation/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