2010-08-09 5 views
3

Dans mon service Windows construit avec C# Je suis en train de définir les types MIME basé sur les extensions de fichier comme indiqué ci-dessousTypes Mime dans les fenêtres de Registre

static string GetMimeType(string fileName) 
     { 
      string mimeType = "application/unknown"; 
      string ext = Path.GetExtension(fileName).ToLower(); 

      Microsoft.Win32.RegistryKey regKey = Microsoft.Win32.Registry.ClassesRoot.OpenSubKey(ext); 

      if (regKey != null && regKey.GetValue("Content Type") != null) 
       mimeType = regKey.GetValue("Content Type").ToString(); 

      return mimeType; 
     } 

Sur le serveur de production, nous n'avons pas Acrobat ou mot installé pour des raisons évidentes. Comment je me débrouille avec ça? Y a-t-il un autre moyen de définir les types mime? Sinon, comment puis-je créer ces types mime sur le serveur de production sans avoir à installer ces logiciels.

Merci à l'avance

Répondre

6

Vous pouvez simplement créer les entrées de registre pour ces types de votre code pour lire

  • regedit aller à HKEY_LOCAL_MACHINE \ Software \ Classes (la partie centrale de HKCR)
  • Classes clic droit, une nouvelle clé - appeler .pdf
  • clic droit sur le côté droit, Nouvelle chaîne - "type de contenu", "application/pdf"

ou vous pouvez trouver une machine sur laquelle Acrobat est installé, puis utiliser regedit pour exporter la clé .pdf vers un script de registre que vous pouvez importer sur votre serveur. Vous allez vous retrouver avec beaucoup de scripts: vous pouvez utiliser le bloc-notes pour les éditer ensemble, mais assurez-vous de ne pas changer l'encodage lorsque vous enregistrez - il doit être Unicode! Vous pouvez également ajouter une liste de mappages dans votre application, mais IIS ne proposera pas de contenu statique s'il ne possède pas de type de contenu. Vous devrez probablement les ajouter à votre base de registre si vous avez besoin PDFs.

Questions connexes