2010-10-14 5 views
1

Comment lire un fichier à partir d'un chemin UNC, découvrir le type MIME approprié et le diffuser vers un navigateur?Lecture d'un fichier à partir d'un chemin UNC et définition du type MIME correct dans une requête HTTP

Il me semble que je suis en train de réinventer IIS, et je vais aussi devoir gérer ma propre base de données de type MIME pour chaque extension de fichier. La requête ci-dessus semble-t-elle raisonnable ou existe-t-il un meilleur moyen?

Je prévois de diffuser ceci via un navigateur HTTP Obtenir une requête sur IIS7. Si c'est important, je lance aussi Cognos sur le même serveur. Tout cadre est OK (WCF, ASPX, etc)

+0

quelle structure, WCF? –

+0

@Shay, juste mis à jour la question – LamonteCristo

Répondre

1

En utilisant WCF c'est assez basique: Ce code peut être hébergé sous IIS/Service/WAS/etc.
Je n'ai jamais trouvé un moyen pratique de gérer le type MIME, vous aurez besoin de votre propre DB qui mappera l'extension de fichier en types MIME.

[ServiceContract(SessionMode = SessionMode.NotAllowed)] 
public interface IMediaRetriver 
{ 
    [OperationContract] 
    [WebGet(UriTemplate = "/get?f={fileName}")] 
    Stream Get(string fileName); 
} 


[ServiceBehavior(InstanceContextMode = InstanceContextMode.Single)] 
public class MediaRetriver : IMediaRetriver 
{ 
    public Stream Get(string fileName) 
    { 
     // pro tips 
     // this will cause the file dialog to show the file name instead of "get" 
     WebOperationContext.Current.OutgoingResponse.Headers.Add(
      "Content-disposition", string.Format("inline; filename={0}", fileName));   
     WebOperationContext.Current.OutgoingResponse.ContentType = 
      "application/octet-stream"; 

     // you want to add sharing here also 
     return File.Open(fileName) 
    } 
} 
+0

Peut-être que je peux interroger la liste de type MIME de IIS et l'utiliser pour mon propre ... – LamonteCristo

+0

@Maker Je ne connais pas de telle API officielle –

+0

Voici l'API qui devrait rendre tout complet: http : //stackoverflow.com/questions/3937958/how-can-i-query-iis-for-mime-type-mappings – LamonteCristo

Questions connexes