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
Lepaskan: 2025-01-31 14:46:10
asal
826 orang telah melayarinya

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>
    Salin selepas log masuk
  2. penampan inisialisasi:
  3. <code class="language-csharp"> byte[] buffer = new byte[256];</code>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
  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>
    Salin selepas log masuk
    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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan