2009-01-20 7 views
1

C'est la même question que this mais je suis à la recherche d'une solution ASP classique.Classique ASP/IIS6: Comment rechercher la carte mime du serveur?

J'ai un contrôle tiers pour fournir des téléchargements sécurisés, mais il s'attend à ce que vous fournissiez la valeur response.contenttype. J'essaie d'avoir l'invite du navigateur avec les éléments suivants:

Response.AddHeader "Content-Disposition", "pièce jointe; filename =" "" & strFileName & "" ""

Cependant Safari ne comme n'importe quel type de contenu suggéré (fait des choses étranges avec le nom de fichier - comme ajouter ".exe" à la fin).

  • application/x-msdownload
  • application/force télécharger

donc je soit comme d'interroger IIS pour le type de contenu correct ou de trouver un type de contenu générique qui permettrait le navigateur comprendre d'une manière assez fiable.

Répondre

0

Généralement, le mimemap utilisé par le site est stocké au niveau du serveur et vous pouvez entrer dans les problèmes de permission en essayant de le lire. Il nécessite un code ADSI méchant.

Avez-vous essayé la norme application/octet-stream comme type mime?

+0

Désolé pour la fin accepter/modifier. Il s'avère que le contrôle avait une fonction pour faire une meilleure estimation du type mime. Le type mime mentionné n'a pas toujours produit des résultats idéaux sur tous les navigateurs/plates-formes. –

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 

Note: le code d'appel GetObject doit être un opérateur dans les propriétés WWW Service Master.