如何在ASP.NET C#網頁中使用FileUploader
控件檢查上載文件的文件類型?檢查上傳文件的類型
我試圖檢查的文件擴展名,但是當JPEG圖像(例如
Leonardo.jpg
)被重命名爲有一個PDF的擴展名(例如Leonardo.pdf
)它顯然失敗。我試圖
FileUpload1.PostedFile.ContentType.ToLower().Equals("application/pdf")
但上面的代碼表現爲第一做了同樣的方式失敗。
是否有任何其他方式來檢查實際的文件類型,而不僅僅是擴展名?我看了一下ASP.NET how to check type of the file type irrespective of extension。
編輯:我嘗試下面的代碼在計算器的職位之一。但是這沒有用。對此有任何想法。
/// <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 });
}
}
謝謝。這是工作。 – crazyTechie
我在哪裏可以得到這段代碼的解釋 – crazyTechie
它是一箇舊的Java項目的.Net端口,我找不到它的信息,不確定它是否仍然存在。 –