如何使用ASP.NET C#检查上传的图像文件是否是假的?

时间:2018-03-21 15:58:15

标签: c# asp.net

我在我的ASP.NET C#应用程序上使用FileUpload控件,目的是上传图像文件,我想检查上传的图像是否坏了。

我的应用程序检查扩展,它工作正常,但如果我上传假图像文件(如保存为图像文件的txt文件),服务器接受它。

我的问题简短的是如何防止这种情况?

1 个答案:

答案 0 :(得分:2)

正如@Isma评论的那样,定义“破碎”。

但您可以尝试使用它创建一个新的System.Drawing.Image。如果您想验证其他任何内容,请访问它的属性。例如,如果符合您的目的,您可以检查图像是否大于1像素。如果抛出异常,或者在您进行其他检查期间,则它(不太可能)是有效图像。

    private static bool CheckImage(string filename)
    {
        try
        {
            using (var image = Image.FromFile(filename))
            {
                if(image.Height<2 && image.Width<2)
                    return false
            }
            return true;
        }
        catch (Exception ex)
        {
            // probably should log more information here
            return false;
        }
    }