Heim >Backend-Entwicklung >C++ >Wie kann ich den MIME -Typ einer Datei anhand seiner Signatur in .NET bestimmen?

Wie kann ich den MIME -Typ einer Datei anhand seiner Signatur in .NET bestimmen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-31 14:46:10885Durchsuche

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

<.> Verwenden Sie die Dateisignatur im .NET, um den Dateityp der Datei zu bestimmen

In vielen Fällen ist die Art des MIME bei genau identifizierender Dateien sehr wichtig, insbesondere wenn die Dateierweiterung falsch ist oder nicht existiert. .NET bot eine allgemeine Lösung dafür.

In .NET können Entwickler die

-Funktion in der urlmon.dll -Bibliothek verwenden. Diese Funktion verwendet eine Signaturlösung, um den MIME -Typ der Datei zu bestimmen.

FindMimeFromData Um diese Technologie zu erreichen, befolgen Sie bitte die folgenden Schritte:

    Einführung des notwendigen Namensraums:
  1. <code class="language-csharp"> using System.Runtime.InteropServices;</code>
  2. Initialisierungspuffer:
  3. <code class="language-csharp"> byte[] buffer = new byte[256];</code>
  4. Lesen Sie die Dateidaten in den Puffer:
  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. Aufruf Funktion zum Abrufen des MIME -Typs:
  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>
    Zurück den MIME -Typ als Zeichenfolge.
  8. Durch die Implementierung dieser Lösung können Entwickler den MIME -Typ der Datei basierend auf der Signatur der Datei zuverlässig bestimmen, unabhängig von der Dateierweiterung. Diese Technologie ist in verschiedenen Anwendungen sehr wertvoll, einschließlich Datei -Upload -Verarbeitung und Inhaltszustellung.
Verbesserung Beschreibung:

Im ursprünglichen Code

gibt es potenzielle Probleme, da

der Typ ist und der Konstruktor den Typ new IntPtr(mimetype) akzeptiert. Der geänderte Code konvertiert in mimetype, um die Kompatibilität sicherzustellen. Dies ist besonders wichtig, wenn Sie mit der .NET -Implementierung verschiedener Plattformen umgehen. UInt32

Das obige ist der detaillierte Inhalt vonWie kann ich den MIME -Typ einer Datei anhand seiner Signatur in .NET bestimmen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn