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);