【#Laravel】postgreSQLのラージオブジェクト(BLOB)をメモリストリームにて取得する
関連記事
【#PostgreSQL】3ヶ月ぶりぐらいにSQLを眺めているが,判らん!!モルモルモル 【2024年07月25日(木)】
- 【#apache #PHP】apacheが立ち上がらなくなったー「アクセス許可で禁じられた方法でソケットにアクセスしようとしました」エラー発生 【2024年04月16日(火)】
- 【#Laravel #PHP】久しぶりにLaravelと格闘しておるがすっかり忘れちょる(汗 【2024年04月12日(金)】
- 【#PHP】謎な #Laravel 案件 引き渡したじ 【2024年01月11日(木)】
- 【PHP】PHPのバージョンをアップしたら,「tcpdf」フレームワークがエラー吐きまくりで,こっちまで吐きそうになった 【2024年01月10日(水)】
難儀したぞー!(怒
C#のアプリでpostgreSQLのラージオブジェクト(BLOB)に画像ファイルを格納するシステム
WEBアプリを新規で作成して
WEB側でも画像見たい!とかって話になって
いつもどおりLaravelで作り出して
BLOBファイルをBase64エンコードして,RESTでクライアントへ送出...の作戦
んが,LaravelでBLOB,どうやって取るの?ってなったのさ...ドロドロドロ
半日以上悩んだけど,解決したんで,ソースを置いておきまする
//------------------------------ // BLOBデータを得る //$tmpOID: OID //------------------------------ public function GetBlobFromOID($tmpOID ) { $pdo = DB::connection()->getPDO(); //PDOの取得 $pdo->beginTransaction(); //BLOBアクセス時はトランザクションが必須! $stream = $pdo->pgsqlLOBOpen($tmpOID, 'r'); $local = fopen('php://memory', 'rw+'); stream_copy_to_stream($stream, $local ); fseek($local, 0, SEEK_END); //ファイル長の取得 $filelen = ftell($local); rewind($local); $result = fread($local, $filelen); //ファイル読み込み(バイナリ) fclose($local); fclose($stream ); $local = null; $stream = null; $pdo->commit(); return $result; }Laravel&postgreSQLにてBLOBにアクセスするときは
PDO
経由で行え,だそうな
fopen(‘php://memory’, ‘rw+’);
は,PHPでのメモリストリームでごわす
ここをファイルストリームにすれば,サーバ上でファイル出力に変更できまする
$resultはバイナリのデータなんで,上位層でBASE64して
あとは煮るなり焼くなりにて...モルモルモル
バグってたら許してちょ❤
コメント
九州自動車道 トンネル内で大型トレーラーから出火 人吉~八代間で通行止め(24/7/26)
【#ご到着シリーズ】冷凍かしわ飯&冷凍かしわうどんセットに当選したモルモルモル
【#破局噴火】イエローストーンで大規模な水蒸気爆発が発生
暑すぎてダレてる.なんのやる気も起こらんドロドロドロ
【#Windows #CrowdStrike】セキュリティーソフト世界シェア1位があだ…ウィンドウズ障害、「過去最大規模」の見方も
3連休,らしい.これといって予定はない(爆
【#trump #shooting】トランプ暗殺未遂:トランプ氏 集会で発砲音「前大統領は無事」死者も
【#線状降水帯】九州北部山口県に線状降水帯発生予測情報発令(24/7/13)
【#落雷】今朝の雷,すごかったー 清武城かお隣のマンションに落雷したー共用部の電源落ちてるテレビが映らない!
【#彗星】紫金山アトラス彗星(C/2023 A3)がぶっ壊れた!今秋,見れると思ってたのにピエン