asp在IE浏览器中下载服务端上的各类文件的实现方法

时间:2022-10-04 17:52:16

即直接提示用户下载而不是由浏览器打开某些文件。注意,下面的代码拷贝到ASP文件中后,不要再添加一些非ASP代码在页面中:如HTML和javascript客户端的代码。 

复制代码代码如下:


<% 
'-------------------------------------------- 
Response.Buffer = True 
Dim strFilePath, strFileSize, strFileName 
Const adTypeBinary = 1 
strFilePath = "文件路径 " 
strFileSize = ... 文件大小,可选 
strFileName = "文件名" 
Response.Clear 
'8*******************************************8 
' 需要在你的服务器上安装 MDAC 2.6 或MDAC2.7 
'8*******************************************8 
Set objStream = Server.CreateObject("ADODB.Stream") 
objStream.Open 
objStream.Type = adTypeBinary 
objStream.LoadFromFile strFilePath 
strFileType = lcase(Right(strFileName, 4)) '文件扩展名 站.长.站  
' 通过文件扩展名判断 Content-Types 
Select Case strFileType 
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 ".asp" 
ContentType = "text/asp"  
Case Else 
'Handle All Other Files 
ContentType = "application/octet-stream" 
End Select 
Response.AddHeader "Content-Disposition", "attachment; filename= strFileName 
Response.AddHeader "Content-Length", strFileSize 
Response.Charset = "UTF-8" ' 客户端浏览器的字符集UTF-8 
Response.ContentType = ContentType 
Response.BinaryWrite objStream.Read 
Response.Flush 
objStream.Close 
Set objStream = Nothing 
%>