我有一个ASP.NET核心应用程序,我需要验证上传的文件是图像而不是具有图像扩展名的非图像文件….
我发现并且有意义的所有解决方案都使用System.Drawing.
Image或ASP.NET Core中不可用的类似类.
你能建议一个替代方案吗?
*请注意,我不是要检查扩展名,而是检查内容.
谢谢
最佳答案 现在“System.Drawing.Common”NuGet可用于.NET Core.
您可以执行以下操作来验证“可能”的图像:
using System.Drawing;
// ...
public bool IsImage(byte[] data)
{
var dataIsImage = false;
using (var imageReadStream = new MemoryStream(data))
{
try
{
using (var possibleImage = Image.FromStream(imageReadStream))
{
}
dataIsImage = true;
}
// Here you'd figure specific exception to catch. Do not leave like that.
catch
{
dataIsImage = false;
}
}
return dataIsImage;
}