uping.php
<HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8"> <TITLE>データベースへの画像の格納</TITLE> </META> </HEAD> <P>ファイルのアップロード</P> <BODY> <FORM method="POST" enctype="multipart/form-data" action="uping.php"> <INPUT type="hidden" name="MAX_FILE_SIZE" value="1080000"> 画像のファイル名を入力してください(最大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="リセット"> </INPUT></INPUT></BR></BR></INPUT></BR></INPUT></BR></INPUT> </FORM> <?php if(isset($_POST["submit"])){ try{ $dsn = 'mysql:dbname=;host='; $user = ''; $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=;host='; $user = ''; $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 $data){ echo '<img src="image.php?id='.$data["id"].'"><br>'.PHP_EOL; } ?>
image.php
<?php $sql = "SELECT * FROM img where id=?"; $stmt_pic = $dbh->prepare ( $sql ); $stmt_pic->execute ([$_GET["id"]]); $row = $stmt_pic->fetch(PDO::FETCH_ASSOC); // header("Content-Type: ".$row["type"]); // print $row["image"]; try{ $dsn = 'mysql:dbname=;host='; $user = ''; $password = ''; $dbh = new PDO($dsn, $user, $password); //データベースに接続 $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $dbh->query('SET NAMES utf8'); //文字コードのための設定 $sql = "SELECT * FROM picture where id=?"; $stmt_pic = $dbh->prepare ( $sql ); $stmt_pic->execute ([$_GET["id"]]); $row = $stmt_pic->fetch(PDO::FETCH_ASSOC); $dbh = null; //データベースから切断 } catch(PDOException $e){ die($e->getMessage()); print 'サーバが停止しておりますので暫くお待ちください。'; exit(); } header("Content-Type: ".$row["type"]); print $row["data"]; ?>
前提・実現したいこと
mysqlに画像を入れ、base64にて画像をエンコードし、PHP、HTMLで画像表示することに取り組んでいます。
レンタルサーバー(Xサーバ)を借りて、HTMLで画像表示することが以下のプログラムで出来ました。
しかし、1枚限定のプログラムであり、複数の画像を表示することが出来ないことが発覚しました。
このプログラムはネット上で拾ってきたものであり、ここからどう直したら良いのか分かりません。
どうかアドバイス、ご回答またもっと良いやり方がありましたら宜しくお願い致します。
発生している問題・エラーメッセージ
画像が1枚しか表示できないプログラム
該当のソースコード
ソースコード
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2021/11/21 03:18
2021/11/21 03:21
退会済みユーザー
2021/11/21 03:37
2021/11/21 03:40
退会済みユーザー
2021/11/21 03:50
2021/11/21 03:54
退会済みユーザー
2021/11/21 04:01
2021/11/21 04:03
退会済みユーザー
2021/11/21 04:09
2021/11/21 04:10
2021/11/21 04:38
退会済みユーザー
2021/11/21 04:47
2021/11/21 04:52