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:
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);
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.
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!