当前位置:K88软件开发文章中心编程语言AspAsp01 → 文章内容

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

减小字体 增大字体 作者:佚名     来源:asp编程网  发布时间:2018-12-30 8:04:46


在IE进行文档链接时,如果遇到OLE支持的文档,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"),"\",""),"/",""))

'如果提示路径不对时请将,上面的代码改成下面代码,

call downloadFile(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实现文件直接下载的代码