Dans de nombreux cas, le type de MIME dans l'identification avec précision des fichiers est très important, en particulier lorsque l'extension de fichier est incorrecte ou n'existe pas. .NET a fourni une solution générale pour cela.
Dans .NET, les développeurs peuvent utiliser la fonction
dans la bibliothèque urlmon.dll. Cette fonction utilise une solution de signature pour déterminer le type MIME du fichier.
FindMimeFromData
Pour réaliser cette technologie, veuillez suivre les étapes ci-dessous:
using System.Runtime.InteropServices;
byte[] buffer = new byte[256];
using (FileStream fs = new FileStream(filename, FileMode.Open)) { if (fs.Length >= 256) fs.Read(buffer, 0, 256); else fs.Read(buffer, 0, (int)fs.Length); }
FindMimeFromData
uint mimetype; FindMimeFromData(0, null, buffer, 256, null, 0, out mimetype, 0); IntPtr mimeTypePtr = new IntPtr((int)mimetype); // 修正:将mimetype强制转换为int string mime = Marshal.PtrToStringUni(mimeTypePtr); Marshal.FreeCoTaskMem(mimeTypePtr);
En implémentant cette solution, les développeurs peuvent déterminer de manière fiable le type MIME du fichier en fonction de la signature du fichier, quelle que soit l'extension du fichier. Cette technologie est très précieuse dans diverses applications, y compris le traitement de téléchargement de fichiers et la livraison de contenu.
Dans le code d'origine
il y a des problèmes potentiels, car est le type , et le constructeur accepte le type new IntPtr(mimetype)
. Le code modifié convertit en mimetype
pour assurer la compatibilité. Ceci est particulièrement important lorsque l'on traite de la mise en œuvre .NET de différentes plateformes. UInt32
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!