简体   繁体   中英

Classic ASP/IIS6: How to search the server’s mime map?

This is the same question as this but I'm looking for a classic ASP solution.

I have a third party control to provide secure downloads but it expects you to provide the response.contenttype value. I'm trying to have the browser prompt with the following:

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

However Safari doesn't like any of the suggested content types (does odd things with the file name - like add ".exe" to the end).

  • application/x-msdownload
  • application/force-download

So I'd either like to query IIS for the correct content type or find a generic content type that would let the browser figure it out in a somewhat reliable fashion.

Typically the mimemap being used by the site is stored at server level and you can get into permission issues trying to read it. It requires some nasty ADSI code.

Have you tried the standard application/octet-stream as a mime type?

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

Note: the code calling GetObject is required to be an Operator in WWW Service Master properties.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM