1

我正在使用 PHP 5.3.5 和 postgreSQL。我正在从数据库中存储和提取图像。

为了存储我这样做:

 $escaped_data = base64_encode(file_get_contents($_FILES['fileUpload']['tmp_name']));
 $fileModel->setBinary_Data($escaped_data);

它正在工作,我在我的数据库(Bytea 字段)中收到了图像。

问题是提取这个,我正在尝试这段代码来提取我的图像:

$file_info = $fileModel->getBinary_Data($id_file); // This function return the binary_data of the image

header('Content-Type: image/jpeg;base64');
header('Content-Disposition: attachment; filename=' . $file_info['_name']);
base64_decode($file_info['binary_data']));

下载图片的时候看不到图片。。。

有回声:

echo base64_decode($file_info['binary_data']);

发生这种情况:

http://imageshack.us/f/18/encodez.jpg/

之后,我尝试在 base64_decode 中使用函数 stream_get_contents,但不起作用。

有人知道我如何用 php 下载我的图像吗?

不管怎么说,还是要谢谢你...

4

1 回答 1

0

很明显,您的自定义getBinary_Data()返回 $file_info['binary_data'] 作为资源,而不是字符串..所以要么更改函数或使用base64_decode(file_get_contents($file_info['binary_data'])));

然后尝试使用fclose($file_info['binary_data']);

PS 在 postgre 中没有二进制数据的 blob 类型吗?

于 2012-03-26T22:35:30.680 回答