2016-02-18 57 views
-2

我已經檢查了本網站上同一主題的其他問題,並試圖找到解決方案但未成功。圖像存儲在數據庫中的文件夾被成功加載,但不顯示
這裏是我的代碼:PHP:圖像沒有從SQL數據庫中顯示

<html> 
    <body> 
     <form action="image.php" method="post" enctype="multipart/form-data"> 
      <input type="text" name="image_description" placeholder="Enter name" required> 
      <input type="file" name="myfile"> 
      <input type="submit" name="upload" value="upload"> 
     </form> 
    </body> 
</html> 

<?php 
include("db.php"); 
if(isset($_POST['upload'])) { 
    $image_description = $_POST['image_description']; 
    $name = $_FILES["myfile"]["name"]; 
    $type = $_FILES["myfile"]["type"]; 
    $size = $_FILES["myfile"]["size"]; 
    $temp = $_FILES["myfile"]["tmp_name"]; 
    $error = $_FILES["myfile"]["error"]; 

    $upload=move_uploaded_file($temp, "uploaded/" . $name); 

    $query= "INSERT INTO image(image_description,image_name,image_type,image_size) VALUES ('$image_description','$name','$type','$size')"; 
    if(mysqli_query($conn,$query) && $upload) { 
     echo "successfully uploaded"; 
    } 
    else 
     die(mysqli_error($conn)); 
} 

$query = mysqli_query($conn,"SELECT * FROM image"); 
while($row = mysqli_fetch_array($query)) 
{?> 
     <img style="width: 200px;height: 200px;" src="<?php echo 'uploaded/' .$row['image_name'] ?>"> 
<?php 
    echo $row['image_description'] . "<br>"; 
}?> 

的圖像顯示在畫面

Images are displayed as in picture

這是數據庫表

This is database table

+1

你的代碼容易被注入......你不應該在查詢中使用unsanitised PHP變量。你檢查過你的PHP代碼中'$ row ['image_name']'的值嗎?他們是否正確?這些文件是否存在? – Ben

+0

我以後會爲它工作(注射)。正如我告訴它存儲數據庫成功。 – Iony

+0

是的,它可能成功地存儲在數據庫中 - 但實際上是在檢索數據的「PHP」代碼?當你輸出'img'標籤時,什麼是'src'屬性?這是你期待的嗎? – Ben

回答

3

您的頁面的URL是index.php/;注意最後的斜線。
A 相對URL(例如src="uploaded/..")將解析爲index.php/uploaded/..
該文件夾顯然不存在於您的磁盤上。

  1. 使用根目錄相對的URL:src="/uploaded/.."
  2. 使用相對URL,但去到正確的文件夾:src="../uploaded/.."
  3. 解決您的怪異的URL並使其index.php,從即使相對URL也能正確解析。
+0

它的工作...三江源 – Iony

+0

我已經嘗試過了'「>',它成功運行 – Iony