如何在尝试加载之前检查jpeg图像文件是否实际上是有效图像?

时间:2011-11-19 23:16:01

标签: c# image file validation

C#.NET 4.0中,基于我下载虚假图像的问题(将错误的aspx页面保存为image.jpg而不是image.jpg中的实际图像),我需要以某种方式读取文件并识别如果它是有效图像。我只需要1个函数public bool IsValidJpgImage(string ImageFilename);任何返回false的东西(不是有效的图像文件)我将从磁盘中删除。

2 个答案:

答案 0 :(得分:6)

据我所知,所有JPEG内部都使用相同的10个字符的ASCII字符串开始,尽管我不记得前6个字符是什么。即使文件扩展名错误,这也是识别jpeg图像的快速/脏方法。

grep -P '^......JFIF' ./'raccoon paint.jpeg'

如果图像不是jpeg,则匹配将失败。

答案 1 :(得分:1)

此代码用于在上传图像之前获取小于500kb的大小和.jpg格式

protected void btnOk_Click(object sender, EventArgs e)
{
    long maxsize = 512000;
    string str = Path.GetFileName(FileUpload1.FileName);
    int filesize = FileUpload1.PostedFile.ContentLength;
    string fileexe = Path.GetExtension(FileUpload1.FileName);
    if (filesize <= maxsize )
    {
        if (fileexe == ".jpg" || fileexe == ".jpeg")
        {
            FileUpload1.SaveAs(Server.MapPath("~/Image/" + str));
        }
        else
        {
            lblMsg.Text = "Image extension must be jpg or jpeg";
        }
    }
    else
    {
        lblMsg.Text = "File size is too large.";
    }

}