Php 如何从pgsql获取二进制图像?

Php 如何从pgsql获取二进制图像?,php,laravel,postgresql,Php,Laravel,Postgresql,我在pgsql中使用类似的Laravel存储图像,但我无法获取图像: $fi = $params['avatar']; $p=fopen($fi,'r'); $data=fread($p,filesize($fi)); $data=addslashes($data); $contents= pg_escape_bytea($data); 尝试以下操作时: $user_image = User::where('id',Auth::User()->id)->pluck('avata

我在
pgsql
中使用类似的Laravel存储图像,但我无法获取图像:

$fi =  $params['avatar'];
$p=fopen($fi,'r');
$data=fread($p,filesize($fi));
$data=addslashes($data);
$contents= pg_escape_bytea($data); 
尝试以下操作时:

$user_image = User::where('id',Auth::User()->id)->pluck('avatar')->first(); 
$unese_image = pg_unescape_bytea($user_image); 
它给出的错误如下:

pg_unescape_bytea()期望参数1是字符串,资源给定

这个查询完全是多余的
Auth::user()
将包含与
user::where('id',Auth::user()->id)->first()
相同的内容,因此调用该查询没有意义

您只需能够做到:

$unese_image = pg_unescape_bytea(Auth::user()->avatar);

只要
avatar
是一个字符串,它就应该可以工作。

Ya谢谢你的建议,但当我喜欢这个$unese\u image=pg\u unescape\u bytea(Auth::user()->avatar)时也会出现同样的错误;
$unese_image = pg_unescape_bytea(Auth::user()->avatar);