我想知道是否有人可以提供帮助,大约一周前我发送了 ImageResizer 和电子邮件,但尚未收到有关我的查询的回复。所以希望 ImageResizer 或 Stackoverflow 成员的人能回答我的问题。
我有以下代码。
if (File != null && File.ContentLength > 0)
{
string extension = Path.GetExtension(File.FileName.ToLower());
var imageId = Guid.NewGuid();
if (extension == ".png" || extension== ".jpg" || extension == ".jpeg" || extension == ".gif")
{
var i = new ImageResizer.ImageJob(File, "~/uploads/" + imageId + ".<ext>",
new ImageResizer.ResizeSettings("width=200;height=200;format=png;mode=max"))
{
CreateParentDirectory = false
};
i.Build();
GetValue(model, imageId);
return RedirectToAction("RegisterStepTwo", "Account");
// }
// TempData["WrongImageFormat"] = "Image must be either png, jpeg/jpg or gif";
// return View();
}
TempData["WrongImageFormat"] = "Image must be either png, jpeg/jpg or gif";
return View();
}
上周我在这个网站和其他网站上读到的内容是尝试验证无效的图像上传、更改文件名、调整大小和更改扩展名。
上面的代码似乎可以做到这一点,我将自己的 Guid 添加到数据库中。如果我在记事本添加 javascript 中创建无效文件并将其保存为 png,则会返回以下错误。
[ImageCorruptedException (0x80004005): File may be corrupted, empty, or may contain a PNG image with a single dimension greater than 65,535 pixels.]
所以我的问题是,上面的代码是否可以防止无效图像上传。在阅读了此处的文档以及网站上的其他位置后,我找不到所需的信息。
希望比我有更多经验的人可以帮助解决这个问题。