前提・実現したいこと
データベースに登録された画像をすべて表示するプログラムを作成したいです
参考にしたサイト
以下のプログラムを実行してもページに何も表示されません
upimg.php (画像をデータベースに登録するコード)
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>データベースへの画像の格納</TITLE> </HEAD> <P>ファイルのアップロード</P> <BODY> <FORM method="POST" enctype="multipart/form-data" action="upimg.php"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="65536"> 画像のファイル名を入力してください(最大64KByte)<BR> ファイル名:<INPUT type="text" name="file_name"><BR> パス:<INPUT size="30" type="file" name="upfile"><BR> <BR> <INPUT type="submit" name="submit" value="送信"> <INPUT type="reset" name="reset" value="リセット"> </FORM> <?php if(isset($_POST["submit"])){ try{ $dsn = 'mysql:dbname=map;host=localhost'; $user = 'root'; $password = ''; $dbh = new PDO($dsn, $user, $password); //データベースに接続 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->query('SET NAMES utf8'); //文字コードのための設定 print "<hr>"; $file_name = $_POST["file_name"]; $imgdat = file_get_contents($_FILES["upfile"]["tmp_name"]); $sql = "INSERT INTO picture (name,data,type) values (?,?,?)"; $stmt = $dbh->prepare($sql); $data[] = $file_name; $data[] = $imgdat; $data[] = mime_content_type($_FILES["upfile"]["tmp_name"]); $stmt->execute($data); $dbh = null; //データベースから切断 } catch(PDOException $e){ print 'サーバが停止しておりますので暫くお待ちください。'; exit(); } } ?> </BODY> </HTML>
display.php (画像を表示させるコード)
<?php try{ $dsn = 'mysql:dbname=map;host=localhost'; $user = 'root'; $password = ''; $dbh = new PDO($dsn, $user, $password); //データベースに接続 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->query('SET NAMES utf8'); //文字コードのための設定 $sql = "SELECT * FROM picture"; $stmt_pic = $dbh->prepare ( $sql ); $stmt_pic->execute (); $row = $stmt_pic->fetchAll ( PDO::FETCH_BOTH ); $dbh = null; //データベースから切断 } catch(PDOException $e){ die($e->getMessage()); print 'サーバが停止しておりますので暫くお待ちください。'; exit(); } foreach($row as $pic){ $img[] = base64_encode($pic['data']); } ?> <!-- エンコードした情報をimgタグに表示 --> <?php for($i=0; $i<count($row); $i++): ?> <img src="data:<?php echo $row[i]['type'] ?>;base64,<?php echo $img[i]; ?>"><br> <?php endfor;?>
補足情報(FW/ツールのバージョンなど)
回答1件
あなたの回答
tips
プレビュー