FileUploader
ASP.NET C# Web ページでコントロールを使用してアップロードされたファイルのファイル タイプを確認するにはどうすればよいですか?
Leonardo.jpg
ファイル拡張子を確認しようとしましたが、JPEG 画像 (例: ) が PDF の拡張子 (例: ) を持つように名前を変更すると、明らかに失敗しますLeonardo.pdf
。私は試した
FileUpload1.PostedFile.ContentType.ToLower().Equals("application/pdf")
ただし、上記のコードは最初のコードと同じように動作するため、これは失敗します。
拡張子だけでなく、実際のファイルの種類を確認する他の方法はありますか?
拡張子に関係なくファイルタイプのタイプを確認する方法をASP.NETで調べました。
編集:スタックオーバーフローの投稿の1つから以下のコードを試しました。しかし、このダウンは機能しません。これについてのアイデア。
/// <summary>
/// This class allows access to the internal MimeMapping-Class in System.Web
/// </summary>
class MimeMappingWrapper
{
static MethodInfo getMimeMappingMethod;
static MimeMappingWrapper() {
// dirty trick - Assembly.LoadWIthPartialName has been deprecated
Assembly ass = Assembly.LoadWithPartialName("System.Web");
Type t = ass.GetType("System.Web.MimeMapping");
getMimeMappingMethod t.GetMethod("GetMimeMapping", BindingFlags.Static | BindingFlags.NonPublic | BindingFlags.Public));
}
/// <summary>
/// Returns a MIME type depending on the passed files extension
/// </summary>
/// <param name="fileName">File to get a MIME type for</param>
/// <returns>MIME type according to the files extension</returns>
public static string GetMimeMapping(string fileName) {
return (string)getMimeMappingMethod.Invoke(null, new[] { fileName });
}
}