如何检查FileUploader
在 ASP.NET C# 网页中使用控件上传的文件的文件类型?
Leonardo.jpg
我尝试检查文件扩展名,但是当 JPEG 图像(例如)被重命名为具有 PDF 的扩展名(例如)时,它显然会失败Leonardo.pdf
。我试过
FileUpload1.PostedFile.ContentType.ToLower().Equals("application/pdf")
但这失败了,因为上面的代码与第一个代码的行为方式相同。
有没有其他方法可以检查实际文件类型,而不仅仅是扩展名?
我查看了ASP.NET 如何检查文件类型的类型,而与扩展名无关。
编辑:我在stackoverflow中的一篇文章中尝试了下面的代码。但这不起作用。关于这个的任何想法。
/// <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 });
}
}