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

  即直接提示用户下载而不是由浏览器打开某些文件。注意,下面的代码拷贝到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

  %>