PHP从Base64字符串查看图片

时间:2011-12-01 02:50:17

标签: php base64 gd image

我正在连接到Active-Directory并成功获取 thumbnailPhoto 属性。

我使用Base64编码将文件存储在数据库中,结果如下:

/9j/4AAQSkZJRgABAQEAYABgAAD/4RHoRXhpZgAATU0AKgAAAAgABQEyAAIAAAAUAA ...

(完整的Base64编码字符串:http://pastebin.com/zn2wDEmd

使用a simple Base64 Decoder并将字符串解码为二进制文件并将其重命名为jpeg并使用图像查看器打开(此处:Irfan View)我得到了正确的图片 - 看看自己:

Picture

我如何通过PHP实现这一目标 - 我尝试过使用:

<?php 

$data = '/9j/4A...'; //The entire base64 string - gives an error in dreamweaver

$data = base64_decode($data);

$fileTmp = imagecreatefromstring($data);

$newImage = imagecreatefromjpeg($fileTmp);

if (!$newImage) {
    echo("<img src=".$newImage."/>");
} 

?>

我只是得到一个空白页面!

1 个答案:

答案 0 :(得分:1)

您的问题是imagecreatefromstring()不会返回文件,而是内存中应该使用正确的标题输出的图像。

$data = base64_decode($data);

// Create image resource from your data string
$imgdata = imagecreatefromstring($data);

if ($imgdata) {
  // Send JPEG headers
  header("Content-type: image/jpeg");
  // Output the image data
  imagejpeg($imgdata);

  // Clean up the resource
  imagedestroy($imgdata);
  exit();
}