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

时间:2019-11-21 15:39:59

标签: php laravel postgresql

我已经使用Laravel这样在pgsql中存储了图片,但我无法获取图片:

$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为字符串,已提供资源

1 个答案:

答案 0 :(得分:0)

User::where('id', Auth::User()->id)

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

您应该能够:

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

只要avatar是一个字符串,它就应该起作用。