5

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

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

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

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

2 回答 2

7

由于该问题的作者没有将详细信息发布到答案中,因此我将在此处发布我的发现。

由于返回的字段是流的句柄,您可以使用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);
于 2015-11-03T12:30:54.097 回答
1

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

于 2012-07-04T14:47:37.060 回答