如何检查上传到我服务器的图像实际上是否为有效图像?
我可以检查大小和扩展名,但没有什么能阻止用户将不受支持的文件的文件扩展名更改为支持的文件(例如.jpg或.png)。
据我所知,ASP.NET有Drawing.Image,但.NET Core似乎缺少我可以使用的东西。
我可以为第三方解决方案提供一些建议吗?
答案 0 :(得分:3)
安装nuget Package CoreCompat.System.Drawing
然后您可以像往常一样在.Net Core项目中使用System.Drawing
:
using System.Drawing;
答案 1 :(得分:1)
答案 2 :(得分:1)
使用CoreCompat.System.Drawing我已经对图像有效性进行了简单检查,如下所示。如果“图像”无法打开,那么它就是腐败或伪造的,并会抛出一个我正在捕捉的异常 我很感激try / catch不应该用于验证或逻辑,但这是我能想到的最好的解决方案。
try
{
var img = System.Drawing.Image.FromStream(file.OpenReadStream());
}
catch
{
// bad image
}