我想验证图像原始数据是否有效。
以下是我的代码:
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"
任何人请帮助我,因为我没有解决任何问题。
答案 0 :(得分:1)
imagecreatefromstring
已经这样做了,它会在失败时返回false
。所以你可以压制它的消息并检查返回值:
$image = @imagecreatefromstring($imagedata);
if ($image !== false)
{
...
}
编辑:如果要保存到文件并且保存带有png扩展名的jpeg,则不需要header
和输出缓冲。