2016-09-23 3 views
-2

私は紛失しているので、助けてもらえますか?どのようにMYSQLデータベースから自分のWebページにイメージを取得できますか? anyname.htmlmysqlデータベースに保存されている画像ファイルをWebページに表示するにはどうすればよいですか?

データベース名は:画像

IDプライマリINT(11)AUTO_INCREMENT
名VARCHAR(100)

サイズINT(11)

タイプ: テーブル名がアップロードvarchar(20)

内容mediumblob

アップロードwo rksは素晴らしいですが、ちょうど傾けることは、HTMLページでそれを使用することができるイメージを表示するためにそれを得る。私が画像をアップロードするとき、私はリターンとして取得します:番号11の画像は保存されていますが、画像は表示されません:ここにコードがありますので、私は何の助けもありません。

私のupload.phpコード:そこ

<?php 

// Check for post data. 
if ($_POST && !empty($_FILES)) { 
$formOk = true; 

//Assign Variables 
$path = $_FILES['image']['tmp_name']; 
$name = $_FILES['image']['name']; 
$size = $_FILES['image']['size']; 
$type = $_FILES['image']['type']; 

if ($_FILES['image']['error'] || !is_uploaded_file($path)) { 
    $formOk = false; 
    echo "Error: Error in uploading file. Please try again."; 
} 

//check file extension 
if ($formOk && !in_array($type, array('image/png', 'image/x-png', 'image/jpeg', 'image/pjpeg', 'image/jpg', 'image/gif'))) { 
    $formOk = false; 
    echo "Error: Unsupported file extension. Supported extensions are JPG/PNG."; 
} 
// check for file size. 
if ($formOk && filesize($path) > 500000) { 
    $formOk = false; 
    echo "Error: File size must be less than 500 KB."; 
} 

if ($formOk) { 
    // read file contents 
    $content = file_get_contents($path); 

    //connect to mysql database 
    if ($conn = mysqli_connect('localhost', 'root', '', 'upload')) { 
     $content = mysqli_real_escape_string($conn, $content); 
     $sql = "insert into images (name, size, type, content) values ('{$name}', '{$size}', '{$type}', '{$content}')"; 

     if (mysqli_query($conn, $sql)) { 
      $uploadOk = true; 
      $imageId = mysqli_insert_id($conn); 
     } else { 
      echo "Error: Could not save the data to mysql database. Please try again."; 
     } 

     mysqli_close($conn); 
    } else { 
     echo "Error: Could not connect to mysql database. Please try again."; 
     } 
    } 
} 
?> 

<html> 
<head> 
    <title>Upload image to mysql database.</title> 
    <style type="text/css"> 
     img{ 
      margin: .2em; 
      border: 1px solid #555; 
      padding: .2em; 
      vertical-align: top; 
     } 
    </style> 
</head> 
<body> 
    <?php if (!empty($uploadOk)): ?> 
     <div> 
      <h3>Your Image has been Uploaded:</h3> 
     </div> 
     <div> 
      <img src="image.php?id=<?=$imageId ?>" width="300px" height="300px"></img> 
      <strong><br /><br />Embed</strong>: <input size="30" value='<img src="image.php?id=<?=$imageId ?>">'> 
     </div> 

     <hr> 
    <?php endif; ?> 

    <form action="<?=$_SERVER['PHP_SELF']?>" method="post" enctype="multipart/form-data" > 
     <div> 
     <h3>Image Upload:</h3> 
     </div> 
     <div> 
     <label>IMAGE SELECT<br /></label> 
     <input type="hidden" name="MAX_FILE_SIZE" value="500000"> 
     <input type="file" name="image" /> 
     <br /><br /> 
     <input name="submit" type="submit" value="Upload Image"> 
     </div> 
    </form> 
</body> 
</html> 
+1

を。 http://stackoverflow.com/a/38829952/267540 – e4c5

+0

なぜ最初に画像データをデータベースに入れていますか?これは、通常、ファイルシステムに保存されている方が良いです。そしてimage.phpを呼び出してイメージを表示するので、_that_スクリプトのコードがより適切かもしれないと思いませんか?とにかく、あなたのブラウザで同じパラメータを使ってスクリプトを直接呼び出す(そしてそのスクリプトの 'header'呼び出しを前にコメントアウトして)、結果を確認してください。 – CBroe

答えて

0

あなたは次のimage.php使用し、データベース内の画像データを保存する場合:データベース内のファイルを保存しないでください

<?php 

    $id = $_GET['id']; 

    $link = mysql_connect('localhost', 'root', ''); 
    mysql_select_db('upload'); 
    $sql = "SELECT content FROM images WHERE id=$id"; 
    $result = mysql_query("$sql"); 
    $row = mysql_fetch_assoc($result); 
    mysql_close($link); 

    header("Content-type: image/jpeg"); 
    echo $row['content']; 
?> 
関連する問題