Maison >développement back-end >C++ >Comment puis-je déterminer le type de mime d'un fichier en utilisant sa signature dans .NET?

Comment puis-je déterminer le type de mime d'un fichier en utilisant sa signature dans .NET?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-31 14:46:10913parcourir

How Can I Determine a File's MIME Type Using its Signature in .NET?

<.> Utilisez la signature de fichier dans le .NET pour déterminer le type de fichier du fichier

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:

    introduire l'espace de dénomination nécessaire:
  1. <code class="language-csharp"> using System.Runtime.InteropServices;</code>
  2. Tampon d'initialisation:
  3. <code class="language-csharp"> byte[] buffer = new byte[256];</code>
  4. Lisez les données du fichier dans le tampon:
  5. <code class="language-csharp"> 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);
     }</code>
  6. Appelez la fonction pour récupérer le type de mime:
  7. FindMimeFromData

    <code class="language-csharp"> 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);</code>
    Retour le type MIME en tant que chaîne.
  8. 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.
Description d'amélioration:

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn