Comment les gens détectent-ils généralement le type MIME d'un fichier téléchargé en utilisant ASP.NET?Comment détecter le type MIME d'un fichier téléchargé dans ASP.NET?
20
A
Répondre
22
dans la page ASPX:
<asp:FileUpload ID="FileUpload1" runat="server" />
dans le behind (C#):
string contentType = FileUpload1.PostedFile.ContentType
12
Le code ci-dessus ne donnera pas le type de contenu correct si le fichier est renommé et téléchargé.
S'il vous plaît utiliser ce code pour que
using System.Runtime.InteropServices;
[DllImport("urlmon.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = false)]
static extern int FindMimeFromData(IntPtr pBC,
[MarshalAs(UnmanagedType.LPWStr)] string pwzUrl,
[MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.I1, SizeParamIndex = 3)] byte[] pBuffer,
int cbSize,
[MarshalAs(UnmanagedType.LPWStr)] string pwzMimeProposed,
int dwMimeFlags, out IntPtr ppwzMimeOut, int dwReserved);
public static string getMimeFromFile(HttpPostedFile file)
{
IntPtr mimeout;
int MaxContent = (int)file.ContentLength;
if (MaxContent > 4096) MaxContent = 4096;
byte[] buf = new byte[MaxContent];
file.InputStream.Read(buf, 0, MaxContent);
int result = FindMimeFromData(IntPtr.Zero, file.FileName, buf, MaxContent, null, 0, out mimeout, 0);
if (result != 0)
{
Marshal.FreeCoTaskMem(mimeout);
return "";
}
string mime = Marshal.PtrToStringUni(mimeout);
Marshal.FreeCoTaskMem(mimeout);
return mime.ToLower();
}
10
Alors que aneesh a raison de dire que le type de contenu de la requête HTTP peut ne pas être correcte, je ne pense pas que le rassemblement pour l'appel non géré vaut la peine il. Si vous avez besoin de retomber sur les mappages extension-mimetype, utilisez simplement le code de System.Web.MimeMapping.cctor (utilisez Reflector). Cette approche du dictionnaire est plus que suffisante et ne nécessite pas l'appel natif.
Questions connexes
- 1. Détecter le type MIME en PHP
- 2. fichier de rendu avec le type MIME dans des rails
- 3. ASP.NET Webservice corrompt le fichier téléchargé
- 4. Type mime pour le fichier zip dans Google Chrome
- 5. Changer le type mime d'un fichier non-php?
- 6. Comment ajouter un type MIME à .htaccess?
- 7. URN pour MIME Type
- 8. Comment obtenez-vous le type de contenu d'un fichier téléchargé en utilisant CGI :: Application?
- 9. Comment détecter le type de serveur Web
- 10. détecter le fichier flash corrompu
- 11. Extension de fichier pour MIME Type Web Service?
- 12. Comment détecter si le type est un autre type générique
- 13. Définition du nom de fichier pour un fichier téléchargé dans une application rails
- 14. Comment obtenir des informations de type de fichier en fonction de l'extension? (pas MIME) dans C#
- 15. Puis-je configurer un type MIME IIS dans .NET?
- 16. fichier image Corrupt après l'avoir téléchargé en utilisant la commande ftp linux, avec le type ASCII
- 17. Choisissez le nom de fichier d'un fichier téléchargé avec Django
- 18. Enregistrer un nouveau type mime dans ColdFusion (Java)
- 19. Comment savoir dans Ruby si un fichier est complètement téléchargé
- 20. Est-il possible de savoir si le type du fichier téléchargé est une image?
- 21. Comment créer un fichier .ics de type iCal pouvant être téléchargé par d'autres utilisateurs?
- 22. changer mime type de sortie en php
- 23. Python: Vérifiez si le fichier téléchargé est jpg
- 24. Ajout d'un type MIME en python
- 25. Le fichier CSS n'est pas téléchargé dans Visual Studio 2008 SP?
- 26. Comment vérifier le contenu d'un fichier téléchargé sans compter sur son extension?
- 27. Facebook Les requêtes FBML n'envoient pas de type mime?
- 28. Adobe flex taille maximale du fichier téléchargé
- 29. Obtenir des données à partir d'un fichier Excel téléchargé sans enregistrer dans le système de fichiers
- 30. Comment puis-je obtenir le chemin complet du fichier téléchargé en C# 3.0?
À ce stade, la fonction System.Web.MimeMapping.GetMimeMapping() est publique et peut être appelée directement. –