[注] C#ファイルのMIMEタイプを取得する方法

なぜMIMEタイプだった:
MIMEリファレンスマニュアル
svn.apache.org/repos/asf/httpd/httpd/trunk/docs/conf/mime.types

従来の方法

ファイル拡張子について、あなたはMimeMapping.GetMimeMappingが得ることができます。

MimeMapping.GetMimeMapping(String)メソッド(System.Webの)| マイクロソフトドキュメント

MimeMapping.GetMimeMappingがわからない場合、それはに戻りますapplication/octet-stream既定値。

その他

特定の種類のファイルについては、他の手段は、画像として、それは、関連する取得に使用することができる。このようにして得ることができます。

public bool TryBuildFileMimeType(string filePath, out string mimeType)
{
    if (string.IsNullOrWhiteSpace(filePath) || !System.IO.File.Exists(filePath))
    {
        mimeType = string.Empty;
        return false;
    }
    try
    {
        var image = Image.FromFile(filePath);
        mimeType = GetMimeTypeFromImage(image);
        return !string.IsNullOrWhiteSpace(mimeType);
    }
    catch (Exception ex)
    {
        mimeType = string.Empty;
        return false;
    }
}

private string GetMimeTypeFromImage(Image image)
{
    if (image.RawFormat.Equals(ImageFormat.Jpeg))
        return "image/jpeg";
    else if (image.RawFormat.Equals(ImageFormat.Bmp))
        return "image/bmp";
    else if (image.RawFormat.Equals(ImageFormat.Emf))
        return "image/emf";
    else if (image.RawFormat.Equals(ImageFormat.Exif))
        return "image/exif";
    else if (image.RawFormat.Equals(ImageFormat.Gif))
        return "image/gif";
    else if (image.RawFormat.Equals(ImageFormat.Icon))
        return "image/icon";
    else if (image.RawFormat.Equals(ImageFormat.Png))
        return "image/png";
    else if (image.RawFormat.Equals(ImageFormat.Tiff))
        return "image/tiff";
    else if (image.RawFormat.Equals(ImageFormat.Wmf))
        return "image/wmf";
    return string.Empty;
}

ここに私の実際の場面では、背後にあるこのような方法で扱うことができ、ファイルのほとんどはMimeMappingで処理することができる拡張子を持っている、のための拡張機能はありません、イメージファイルです。

もちろん、ファイルヘッダの内容に応じて、最初の対応するMIMEタイプを見つけるために、ファイルの種類を取得します。あなたが勧告を求めて、既製NUGETを使用することができる場合でも、独自のテーブルドキュメントヘッダが特定さを維持する必要性はわかりません。

関連ツール

Raymond.CC•認識されていないか、不明なファイルの種類を識別するのに役立つツール5

ExifToolこのツールは非常に強力ですが、あなたは、ファイルのメタデータ情報の多くを見ることができ、コマンドラインバージョンとGUIバージョンがあります。

フィル・ハーヴェイExifTool
ExifToolGUI

他の

参照してくださいユーザースーパー- ?I CAN AN ON Windowsの拡張子のないタイプのファイルの決定方法
基本的に飛んでいない、ファイルのコンテンツタイプ/ MIMEタイプに基づいてファイルを取得し、質問がありますか?あなただけの推測に頼ることができますか?しかし、最も一般的なファイルタイプのために、固定フォーマットは、それはありますか?

結局のところ、文書の内容が何であるか、開発者が任意に制御することができます。

参照リンクや関連リンク:

C#の-スタックオーバーフロー- System.Drawing.Image.RawFormatからImageFormatを取得し
、その内容に基づいてファイルタイプを推測- -のC#をコードレビュースタック所
.NET获取文件的MIME类型(コンテンツタイプ)は
、ファイルのContent-Type / MIME-を取得ASP.NET C#でのファイルの拡張子からタイプ
NuGetギャラリー| 1.0.1.17をMimeMapping

オリジナルリンク:
https://www.cnblogs.com/jasongrass/p/11635454.html

おすすめ

転載: www.cnblogs.com/jasongrass/p/11635454.html