我有我的控制器
[HttpPost] public ActionResult ChangeAvatar(HttpPostedFileBase file) { AvatarHelper.AvatarUpdate(file,User.Identity.Name); return RedirectToAction("Index","Profile"); }
我已经检查文件是否是jpeg / png格式:
private static bool IsImage(string contentType) { return AllowedFormats.Any(format => contentType.EndsWith(format,StringComparison.OrdinalIgnoreCase)); } public static List<string> AllowedFormats { get { return new List<string>() {".jpg",".png",".jpeg"}; } }
我需要的是 – 它确保上传的文件是真实的图像文件,而不是带有图像扩展名的txt文件.
using (var image = System.Drawing.Image.FromStream(postedFile.InputStream)) { ///image stuff }
我在考虑从输入流创建图像的try / catch块,但我想知道是否有好的方法可以做到这一点?
谢谢)
附:
我想知道是否有另一种(更有效的方式尝试/捕获阻止)方式来检查文件是否是真实的图像?