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

C# 如何使用ASP.NET C检查上传的图像文件是否伪造?,c#,asp.net,C#,Asp.net,我在ASP.NET C应用程序上使用FileUpload控件来上载图像文件,我想检查上载的图像是否损坏。 我的应用程序检查了扩展名,工作正常,但是如果我上传了虚假的图像文件,比如保存为图像文件的txt文件,服务器会接受它。简言之,我的问题是如何防止这种情况发生?正如@Isma所评论的,定义断开 但您可以尝试使用它创建一个新的System.Drawing.Image。如果要验证有关它的任何其他内容,请访问它的属性。例如,如果符合您的目的,您可以检查图像是否大于1像素。如果在创建或其他检查期间引发异

我在ASP.NET C应用程序上使用FileUpload控件来上载图像文件,我想检查上载的图像是否损坏。
我的应用程序检查了扩展名,工作正常,但是如果我上传了虚假的图像文件,比如保存为图像文件的txt文件,服务器会接受它。简言之,我的问题是如何防止这种情况发生?

正如@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;
        }
    }

定义破碎的。。。还有,你尝试过什么?@Isma伪图像,例如txt文件保存为图像或图像未显示。请检查此处或@Isma我将检查链接,谢谢:这是工作兄弟,谢谢你私人bool GetImageSizeStream文件{试试看{System.Drawing.Image img=System.Drawing.Image.FromStreamfile;返回true;}catchException ex{return false;}}这是另一个对我有用的答案