これはよくある質問に違いありませんが、Google からは見つかりませんでした。postgresql の bytea タイプにテーブルと写真の列があります。次のスニペットを使用して、次の画像を保存しています。
$photo->attributes = $_FILES['Photo'];
$file = CUploadedFile::getInstance($photo, 'photo');
$path = Yii::app()->basePath . '/data/' . $file->name;
$file->saveAs($path); //save the file to the $path
$fp = fopen($path, 'rb');
$content = fread($fp, filesize($path)); //get the file content
fclose($fp);
$photo->photo = base64_encode($content); //encode it
$photo->save(); //save the record to db
unlink(Yii::app()->basePath . '/data/' . $file->name);
保存はうまくいっているようです。
これは、db から blob フィールドを読み取っている場所です。
base64_decode($data->photo) //this call is giving base64_decode() expects parameter 1 to be string, resource given error.
私が行った場合:
print_r($data->photo) //I am getting: Resource id #51
明らかに$data->photo
バイナリ文字列ではなく、リソースとして提供されます。それを機能させる方法はありますか?
前もって感謝します。