Laravel - 使用postgre bytea blob字段

时间:2012-07-04 12:40:56

标签: php postgresql-9.1 laravel

我在Laravel安装上使用PostgreSQL。表有一个bytea类型字段,用于存储二进制数据(base64_encoded文件内容)。

当我使用Eloquent检索表时,我得到一个在该字段中返回的资源类型变量。

我怎样才能将其作为字符串检索?

$raw = Media::where('id','=',$id)->first();
$raw->file_data = base64_decode($raw->file_data);   // doesn't work

2 个答案:

答案 0 :(得分:5)

由于这个问题的作者没有在答案中公布细节,我将在此发表我的发现。

由于返回的字段是流的句柄,您可以使用stream_get_contents函数将值读入字符串,然后可以使用pg_unescape_bytea获取bytea数据的实际值。如果您希望以HTML格式显示bytea数据,请最后使用htmlspecialchars函数。

示例代码:

$my_bytea = stream_get_contents($resource);
$my_string = pg_unescape_bytea($my_bytea);
$html_data = htmlspecialchars($my_string);

答案 1 :(得分:0)

答案是在流上使用stream_get_contents。咄。

相关问题