【发布时间】:2019-07-25 15:05:31
【问题描述】:
如何在 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。
编辑:我在 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 });
}
}
【问题讨论】:
标签: c# asp.net file-upload