Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh menentukan jenis mime fail menggunakan tandatangannya dalam .net?
<.> Gunakan tandatangan fail dalam .net untuk menentukan jenis fail fail
Dalam banyak kes, jenis mime dalam mengenal pasti fail secara tepat adalah sangat penting, terutamanya apabila sambungan fail tidak betul atau tidak wujud. .NET menyediakan penyelesaian umum untuk ini.
Dalam .net, pemaju boleh menggunakan fungsi
di perpustakaan urlmon.dll. Fungsi ini menggunakan penyelesaian tandatangan untuk menentukan jenis mime fail.
FindMimeFromData
Untuk mencapai teknologi ini, sila ikuti langkah -langkah di bawah:
<code class="language-csharp"> using System.Runtime.InteropServices;</code>
<code class="language-csharp"> byte[] buffer = new byte[256];</code>
<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>
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>Kembali jenis mime sebagai rentetan.
Dengan melaksanakan penyelesaian ini, pemaju boleh menentukan jenis mime fail berdasarkan tandatangan fail, tanpa mengira sambungan fail. Teknologi ini sangat berharga dalam pelbagai aplikasi, termasuk pemprosesan muat naik fail dan penghantaran kandungan.
Dalam kod asal
terdapat masalah yang berpotensi, kerana adalah jenis , dan pembina menerima jenis new IntPtr(mimetype)
. Kod yang diubahsuai menukar ke mimetype
untuk memastikan keserasian. Ini amat penting apabila berurusan dengan pelaksanaan .NET platform yang berbeza. UInt32
Atas ialah kandungan terperinci Bagaimana saya boleh menentukan jenis mime fail menggunakan tandatangannya dalam .net?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!