プログラミング初心者です。拙い質問かと思いますがご教授いただけたらと思います。
現在、PHPとMySQLを用いて画像の登録・取得・表示を行いたいと考えています。
ファイルは3つに分けていて、
php
1 <form method="POST" enctype="multipart/form-data" action="img_upload.php"> 2 <p>画像登録&アップロード</p> 3 画像パス:<input type="file" name="upfile" size="30"><br> 4 <input type="submit" name="submit" value="送信"> 5 </form> 6 <?php 7 if(count($_POST) > 0 && isset($_POST["submit"])){ 8 $upfile = $_FILES["upfile"]["tmp_name"]; 9 if($upfile==""){ 10 print("ファイルのアップロードができませんでした"); 11 exit; 12 } 13 //ファイル取得 14 $imgdat = file_get_contents($upfile); 15 16 try{ 17 $pdo = new 18 PDO('mysql:dbname=XXX;host=localhost','xxx','xxx'); 19 }catch(PDOException $e){ 20 echo $e->getMessage(); 21 exit('データベースに接続できません'); 22 } 23 $sql = 'INSERT INTO IMAGES (IMG) VALUES ("$imgdat")'; 24 25 $stmt = $pdo->query($sql); 26 if(!$stmt){ 27 $info = $pdo->errorInfo(); 28 exit($info[2]); 29 } 30 } 31 ?>
php
1<?php 2 try{ 3 $pdo = new 4 PDO('mysql:dbname=XXXX;host=localhost','xxx','xxx'); 5 }catch(PDOException $e){ 6 echo $e->getMessage(); 7 exit('データベースに接続できません'); 8 } 9 10 $sql ="SELECT IMG FROM IMAGES WHERE ID =1"; 11 $stmt = $pdo->query($sql); 12 if(!$stmt){ 13 $info = $pdo->errorInfo(); 14 exit($info[2]); 15 } 16 17 while($data = $stmt ->fetch(PDO::FETCH_ASSOC)){ 18 echo $data['IMG']; 19 } 20 ?> 21
php
1 <form method="POST" action="display.php"> 2 <p>画像表示</p> 3 ID:<input type="text" name="id"> 4 <input type="submit" name="submit" value="sousin"> 5 <Br><br> 6 </form> 7 8 <?php 9 if(count($_POST)>0 && isset($_POST["submit"])){ 10 $id = $_POST["id"]; 11 if($id==""){ 12 print("ID未入力"); 13 }else{ 14 print("<img src=\"img_get.php?id=".$id."\">"); 15 } 16 } 17 ?>
上から、img_upload.php、img_get.php、display.phpです。
現在、
BLOBファイルはDBに登録されているようですが、img_getで出力しようとすると、$imgdatが出力されてしまいます。
画像の取得ができておらず、display.phpでは画像が上手く出力されません。
しかし、どこが悪いのかわからず質問させていただきました。
PHPのバーションは7.0.0
MysqlはphpMyadmin
実行環境はMAMPです。
以上、よろしくお願いします。
<<<2017/7/28追記>>>
画像の保存はベストアンサーをもとに解決することができました。取得・表示についてはできていないのですが、現状が分かりにくくなってしまっているので、新たに質問させていただきます。ご回答ありがとうございました。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/27 03:09
2016/07/27 04:13
2016/07/27 05:02
2016/07/27 06:21
2016/07/27 07:42
2016/07/27 08:56
2016/07/28 01:05