0

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

下面是我的代码:

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"

任何人都请帮助我,因为我在这里没有任何解决方案。

4

1 回答 1

1

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

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

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

于 2013-03-07T14:07:23.137 回答