Rumah >pembangunan bahagian belakang >C++ >Bagaimana saya boleh menentukan jenis mime fail menggunakan tandatangannya dalam .net?

Bagaimana saya boleh menentukan jenis mime fail menggunakan tandatangannya dalam .net?

Linda Hamilton
Linda Hamiltonasal
2025-01-31 14:46:10829semak imbas

How Can I Determine a File's MIME Type Using its Signature in .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:

    Memperkenalkan ruang penamaan yang diperlukan:
  1. <code class="language-csharp"> using System.Runtime.InteropServices;</code>
  2. penampan inisialisasi:
  3. <code class="language-csharp"> byte[] buffer = new byte[256];</code>
  4. Baca data fail ke dalam penampan:
  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. Call berfungsi untuk mendapatkan jenis 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>
    Kembali jenis mime sebagai rentetan.
  8. 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.
Penambahbaikan Peningkatan:

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn