Php Laravel-使用postgre bytea blob字段

Php Laravel-使用postgre bytea blob字段,php,postgresql-9.1,laravel,Php,Postgresql 9.1,Laravel,我正在Laravel安装中使用PostgreSQL。表有一个bytea类型的字段,用于存储二进制数据(base64_编码的文件内容) 当我使用Eloquent检索表时,我会在这个字段中返回一个资源类型变量 我如何将其作为字符串检索 $raw = Media::where('id','=',$id)->first(); $raw->file_data = base64_decode($raw->file_data); // doesn't work 答案是使用流获取流中的内

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

当我使用Eloquent检索表时,我会在这个字段中返回一个资源类型变量

我如何将其作为字符串检索

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

答案是使用流获取流中的内容。duh.

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

由于返回的字段是流的句柄,因此可以使用函数将值读入字符串,然后可以使用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);