Récupérer le content-type d'un fichier ?

Récupérer le content-type d'un fichier ? - C#/.NET managed - Programmation

Marsh Posté le 13-12-2005 à 17:03:29    

Voilà, j'ai un fichier sur le disque.
 
J'aimerais dans mon code être capable de trouver sont content-type, sans coder des trucs en dur.
 
A priori, c'est stocké dans la BDR, mais je préfèrerais éviter d'aller bidouiller moi-même dans la BDR...
 
PS : C'est pour de l'ASP.NET, pas un Windows Form. J'ai l'impression que mon problème vient de là... J'ai en effet trouvé sur le Net des infos sur "System.Net.Mime", sauf que moi j'ai pas ça :spamafote:
 
FrameWork 1.1


Message édité par Arjuna le 13-12-2005 à 17:22:05
Reply

Marsh Posté le 13-12-2005 à 17:03:29   

Reply

Marsh Posté le 13-12-2005 à 17:08:16    

En effet, j'en ai besoin à cause de ça :
 

Code :
  1. Response.Cache.SetCacheability(HttpCacheability.NoCache);
  2.   Response.Buffer = true;
  3.   Response.ContentType = "application/binary";
  4.   Response.AppendHeader("Content-Disposition", "attachment; filename=" + Request.QueryString["filename"]);
  5.   Response.WriteFile(Request.QueryString["path"]);
  6.   Response.End();


 
IE arrive sans problème à ouvrir directement dans word un fichier doc, car il redétecte le contenttype.
seulement, FF fait confiance à ce que dit le site, et du coup il ne me propose que d'enregistrer le fichier. c'est pas super pratique pour l'utilisateur final !

Reply

Marsh Posté le 13-12-2005 à 17:14:19    

Juste en passant: tu t'es trompé de sous cat ;)


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
Reply

Marsh Posté le 13-12-2005 à 17:22:14    

groumpf, ça fait deux fois :D

Reply

Marsh Posté le 13-12-2005 à 17:34:18    

Bon, ça m'a lourdé, j'ai fait ma lib, et voilà :o
 

Code :
  1. using System;
  2. using Microsoft.Win32;
  3. class Mime
  4. {
  5. public static string getContentType(string ext)
  6. {
  7.  RegistryKey hklm = Registry.ClassesRoot;
  8.  try
  9.  {
  10.   hklm = hklm.OpenSubKey(ext);
  11.  }
  12.  catch
  13.  {
  14.   return "application/binary";
  15.  }
  16.  try
  17.  {
  18.   return ((string) hklm.GetValue("ContentType" ));
  19.  }
  20.  catch
  21.  {
  22.   return "application/binary";
  23.  }
  24. }
  25. }


 
Appel :
 

Code :
  1. string filename = (string) Request.QueryString["filename"];
  2.   string[] partname = filename.Split('.');
  3.   Response.ContentType = Mime.getContentType(partname[partname.Length - 1]);


[/code]

Reply

Marsh Posté le 13-12-2005 à 17:35:19    

PS: ouais, je sais, c'est moche, mais ça marche :spamafote:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed