我在我的ASP.NET C#应用程序上使用FileUpload控件,目的是上传图像文件,我想检查上传的图像是否坏了。
我的应用程序检查扩展,它工作正常,但如果我上传假图像文件(如保存为图像文件的txt文件),服务器接受它。
我的问题简短的是如何防止这种情况?
答案 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;
}
}