ホームページ > バックエンド開発 > C++ > .NETでの署名を使用して、ファイルのMIMEタイプを決定するにはどうすればよいですか?

.NETでの署名を使用して、ファイルのMIMEタイプを決定するにはどうすればよいですか?

Linda Hamilton
リリース: 2025-01-31 14:46:10
オリジナル
900 人が閲覧しました

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

多くの場合、ファイルを正確に識別するMIMEのタイプは非常に重要です。特に、ファイル拡張機能が正しくないか、存在しない場合です。 .NETはこれの一般的なソリューションを提供しました。 .NETでは、開発者はurlmon.dllライブラリで関数を使用できます。この関数は、署名ソリューションを使用して、ファイルのMIMEタイプを決定します。

このテクノロジーを実現するには、以下の手順に従ってください:

FindMimeFromData

必要な命名スペースを紹介します:

  1. 初期化バッファ:

    1

    using System.Runtime.InteropServices;

    ログイン後にコピー
  2. ファイルデータをバッファーに読み取ります:

    1

    byte[] buffer = new byte[256];

    ログイン後にコピー
  3. mimeタイプを取得するための<函> call <函>関数:

    1

    2

    3

    4

    5

    6

    7

    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);

    }

    ログイン後にコピー
  4. マイムタイプを文字列としてバックします。 FindMimeFromData

    1

    2

    3

    4

    5

    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);

    ログイン後にコピー
    このソリューションを実装することにより、開発者はファイルの拡張機能に関係なく、ファイルの署名に基づいてファイルのMIMEタイプを確実に決定できます。このテクノロジーは、ファイルのアップロード処理やコンテンツ配信など、さまざまなアプリケーションで非常に価値があります。
  5. 改善の説明:

>>

>>>コンストラクターはタイプを受け入れるため、潜在的な問題があります。 変更されたコードは、に変換して、互換性を確保します。 これは、異なるプラットフォームの.NET実装を扱う場合に特に重要です。 new IntPtr(mimetype)

以上が.NETでの署名を使用して、ファイルのMIMEタイプを決定するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート