2009-01-20 115 views
1

這是與this相同的問題,但我正在尋找一個經典的ASP解決方案。經典ASP/IIS6:如何搜索服務器的MIME映射?

我有第三方控件提供安全下載,但它期望您提供response.contenttype值。我想有一個與瀏覽器提示如下:

Response.AddHeader「內容處置」,「附件;文件名=」「」 & strFileName &「」「」

但是Safari不就像任何建議的內容類型一樣(對文件名做一些奇怪的事情 - 比如在末尾添加「.exe」)。

  • 應用程序/ x-msdownload
  • 應用程序/力下載

所以我想無論是想查詢IIS正確的內容類型,或發現,將讓瀏覽器中的通用內容類型以一種可靠的方式解決問題。

回答

0

通常,網站使用的mimemap存儲在服務器級別,您可能會遇到試圖讀取它的權限問題。它需要一些令人討厭的ADSI代碼。

您是否嘗試過將標準application/octet-stream作爲MIME類型?

+0

對不起,接受/編輯。原來這個控件有一個功能,可以對mime類型進行最佳猜測。 提到的mime類型並不總能在所有瀏覽器/平臺上產生理想的結果。 – 2009-08-02 00:51:28

0

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服務主屬性的操作。