asp.net-mvc – 检查上传的文件是否是C#ASP.NET MVC中的图像
发布时间:2020-05-22 16:14:58 所属栏目:asp.Net 来源:互联网
导读:我有我的控制器 [HttpPost]public ActionResult ChangeAvatar(HttpPostedFileBase file){ AvatarHelper.AvatarUpdate(file, User.Identity.Name); return RedirectToAction(Index, Profile);} 我已经检查文件是否是jpe
|
我有我的控制器 [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块,但我想知道是否有好的方法可以做到这一点? 附: 我想知道是否有另一种(更有效的方式尝试/捕获阻止)方式来检查文件是否是真实的图像? 解决方法您可以使用RawFormat属性:
private static ImageFormat[] ValidFormats = new[] { ImageFormat.Jpeg,ImageFormat.Png };
public bool IsValid(Stream image)
{
try
{
using (var img = Image.FromStream(file.InputStream))
{
return ValidFormats.Contains(img.RawFormat);
}
}
catch
{
return false;
}
}
您也可以将此验证逻辑放入可重用的验证属性中,如我在 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- Razor页面在运行时无法在ASP.NET Core RC2中看到引用的类库
- asp.net-mvc-3 – 如何在ASP.NET MVC3控制器中访问autofac容
- asp.net – 在资源文件中使用HTML
- asp.net-mvc – 将asp.net mvc beta部署到iis 6,导致404
- asp.net-mvc-3 – SQL Server 2008连接字符串,用于实体框架
- asp.net-mvc – 如何找出在MVC3中调用我的视图的控制器动作
- asp.net-mvc – 我可以获取html.HiddenFor / Html.Hidden创
- asp.net-mvc – 如何在ASP.NET MVC控制器中访问HttpServerU
- asp.net – Orchard CMS和Sitefinity CMS
- asp.net-mvc-4 – ViewModels或ViewBag?
推荐文章
站长推荐
- asp.net-mvc – 嵌套属性的模型绑定在asp.net mv
- asp.net-mvc – ASP.NET MVC – HTTP验证提示
- asp.net-mvc – 显式指定ASP.NET MVC中控制器返回
- asp.net-mvc – 将ViewData传递给RenderPartial
- asp.net-mvc – 动态类型的ViewPage
- 将ASP.NET TextBox作为HTML5输入类型“Number”
- asp.net-mvc – 在Controller或其他地方渲染部分
- 在ASP.net中有一个后Page_Load事件
- asp.net – 如何从HTTP请求获取MAC地址?
- asp.net-mvc – 使用Razor在ASP.NET MVC3中的文件
热点阅读
