如何正确地从用户验证文件并检测扩展名更改
本文关键字:检测 扩展名 文件 验证 正确地 用户 | 更新日期: 2023-09-27 18:15:04
我有这样的代码
public bool IsImage(HttpPostedFileBase file)
{
var contentType = file.ContentType.Split("/")(0).ToLower() == "image"
if (contentType != "image")
{
return false;
}
return true;
}
但是,如果用户将.exe
文件重命名为.jpg
,它仍然认为它是一个有效的映像文件。如何预防这种情况?
检查它是否为图像的最简单方法是将其加载为图像,例如使用Image.FromStream
。如果引发异常,则表示它不是图像(或者至少不是受支持的图像格式)。比起仅仅使用扩展名或声明的MIME类型,我更相信这一点。