c# – 在ASP.Net Core中验证IFormFile的图像类型

我有一个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;
}
点赞