前提・実現したいこと
DBに保存してある画像を取り出し表示させたいです。
保存してあるデータは別フォームにて$_FILE['tmp_name']をエンコードしたものです。
post送信されたものをファイルの居場所も分からずそのまま保存できてしまったため、パスが作られ保存され、DBに保存したそのパスで再度呼び出せると思っていたのですが、根本的に間違っているのでしょうか。
以下がソースコードです。
発生している問題・エラーメッセージ
fopen(C:ファイル) failed to open stream: No such file or directory
該当のソースコード
php
1$sql = "SELECT * FROM contents"; 2$sth = connect()->query($sql); 3$contents = $sth->fetchAll(PDO::FETCH_ASSOC); 4//contentsテーブルのimg1カラムにはファイルデータ(path)が格納 5//例えばkry1のimg1を取り出す 6$img1 = $contents['1']['img1']; 7$img = base64_decode($img1); 8$filedata = file_get($img); 9 10 11//html 12<?php echo $filedata ?> 13
php
1file_get.php 2function file_get($file) 3{ 4 $fp = fopen($file, "rb"); 5 $img = fread($fp, filesize($file)); 6 fclose($fp); 7 8 $enc_img = base64_encode($img); 9 $imginfo = getimagesize('data:application/octet-stream;base64,' . $enc_img); 10 $img_data = '<img src="data:' . $imginfo['mime'] . ';base64,' . $enc_img . '">'; 11 if ($img_data) { 12 return $img_data; 13 } 14 return false; 15}
試したこと
別にimgフォルダを作りそこに保存、呼び出しの方法を検討した。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/04/12 10:37