【问题标题】:Classic ASP/IIS6: How to search the server’s mime map?经典 ASP/IIS6:如何搜索服务器的 MIME 地图?
【发布时间】:2010-10-02 13:44:35
【问题描述】:

这与this 的问题相同,但我正在寻找经典的 ASP 解决方案。

我有一个第三方控件来提供安全下载,但它希望您提供 response.contenttype 值。我正在尝试让浏览器提示以下内容:

Response.AddHeader "Content-Disposition", "attachment;filename=""" & strFileName & """"

但是 Safari 不喜欢任何建议的内容类型(对文件名做了奇怪的事情 - 比如在末尾添加“.exe”)。

  • 应用程序/x-msdownload
  • 应用程序/强制下载

所以我要么想查询 IIS 以获得正确的内容类型,要么找到一个通用的内容类型,让浏览器以某种可靠的方式找出它。

【问题讨论】:

    标签: iis asp-classic mime mime-types


    【解决方案1】:

    通常,站点使用的 mimemap 存储在服务器级别,您可能会在尝试读取它时遇到权限问题。它需要一些讨厌的 ADSI 代码。

    您是否尝试过将标准 application/octet-stream 作为 mime 类型?

    【讨论】:

    • 抱歉接受/编辑晚了。事实证明,该控件具有对 MIME 类型进行最佳猜测的功能。提到的 MIME 类型并不总是能在所有浏览器/平台上产生理想的结果。
    【解决方案2】:

    From Reading the server mimemap:

    Public Function GetMimeType(ByVal Extension)
       Dim oMimeMap
       Dim vntMimeType
       Dim avntMap()
    
       Set oMimeMap = GetObject("IIS://LocalHost/MimeMap")
    
       If Left(Extension, 1) <> "." Then Extension = "." & Extension
    
        avntMap() = oMimeMap.MimeMap
    
        For Each vntMimeType In avntMap
            If vntMimeType.Extension = Extension Then
                GetMimeType = vntMimeType.MimeType
                Exit For
            End If
        Next
    
        If GetMimeType = "" Then GetMimeType = "application/octet-stream"
    End Function
    

    注意:调用GetObject的代码必须是 WWW Service Master 属性中的 Operator。

    【讨论】:

      猜你喜欢
      • 2010-09-15
      • 2015-05-21
      • 1970-01-01
      • 1970-01-01
      • 2011-10-11
      • 1970-01-01
      • 2011-12-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多