我正在使用 Doctrine 将图像保存到数据库中,并映射为:
/** @Column(type="blob") **/
protected $data;
一切似乎都很好。我可以通过这种方式将图像数据保存在数据库中:
$largeImage = new ImageData();
$handle = fopen($imagePath, "r");
$bytes = fread($handle, filesize($imagePath));
$largeImage->setData(base64_encode($bytes));
fclose($handle);
$entityManager->persist($largeImage);
$entityManager->flush();
好的。数据已保存,但当我需要读取它时,我不能。
var_dump($image->getData());
// outputs resource(1) of type (stream)
所以,我尝试了这个:
$fp = fopen('image.jpg', 'w');
fwrite($fp, base64_decode(stream_get_contents($image->getData())));
fclose($fp);
并且文件的内容不是来自图像,因此图像不是由 Windows 照片查看器呈现的。