想要使用php验证图像原始数据

时间:2013-03-07 13:42:47

标签: php image

我想验证图像原始数据是否有效。

以下是我的代码:

private function __blobToImage($imagerawdata)
{       
    $imagedata = base64_decode($imagerawdata);
    // Set the content type header - in this case image/jpeg
    header('Content-Type: image/jpeg');

    $path = WWW_ROOT . "commapp_images".'/';
    $file = mktime().".png";
    $filepath = $path.$file;

    // Output the image     
    $image = imagecreatefromstring($imagedata); 
    ob_start(); 
    imagejpeg($image, $filepath, 80);
    ob_get_contents();
    ob_end_clean();
    return $file;
}

使用我的代码时,我收到以下错误

"Notice (8): imagecreatefromstring() [function.imagecreatefromstring]: gd-jpeg, libjpeg: recoverable error: Premature end of JPEG file"

任何人请帮助我,因为我没有解决任何问题。

1 个答案:

答案 0 :(得分:1)

imagecreatefromstring已经这样做了,它会在失败时返回false。所以你可以压制它的消息并检查返回值:

$image = @imagecreatefromstring($imagedata);
if ($image !== false)
{
  ...
}

编辑:如果要保存到文件并且保存带有png扩展名的jpeg,则不需要header和输出缓冲。