2016-09-22 75 views
0

我有代碼的圖像上傳和查看在PHP和MySQL。點擊「imageUpload.php」中的「提交」按鈕後,頁面圖像被存儲在數據庫中。但不顯示在「listImages.php」頁面中。我不知道有什麼問題。我看到「image not displaying when uploading in php」,但它對我來說似乎是不同的解決方案。這裏是我的代碼,請看看我錯了。在數據庫中上傳的圖像,但不顯示在PHP的頁面上?

imageUpload.php:

<?php 

/* CREATE TABLE IF NOT EXISTS `output_images` 
    (
    `imageId` tinyint(3) NOT NULL AUTO_INCREMENT, 
    `imageType` varchar(25) NOT NULL DEFAULT '', 
    `imageData` mediumblob NOT NULL, 
    PRIMARY KEY (`imageId`) 
    ) */  

if(count($_FILES) > 0) { 
if(is_uploaded_file($_FILES['userImage']['tmp_name'])) { 
mysqli_connect("localhost", "root", ""); 
mysqli_select_db ("test"); 
$imgData =addslashes(file_get_contents($_FILES['userImage']['tmp_name'])); 
$imageProperties = getimageSize($_FILES['userImage']['tmp_name']); 

$sql = "INSERT INTO output_images(imageType ,imageData) 
VALUES('{$imageProperties['mime']}', '{$imgData}')"; 
$current_id = mysqli_query($sql) or die("<b>Error:</b> Problem on Image Insert<br/>" . mysqli_error()); 
if(isset($current_id)) { 
    header("Location: listImages.php"); 
} 
} 
} 
?> 
<HTML> 
<HEAD> 
<TITLE>Upload Image to MySQL BLOB</TITLE> 
<link href="imageStyles.css" rel="stylesheet" type="text/css" /> 
</HEAD> 
<BODY> 
<form name="frmImage" enctype="multipart/form-data" action="" method="post" class="frmImageUpload"> 
<label>Upload Image File:</label><br/> 
<input name="userImage" type="file" class="inputFile" /> 
<input type="submit" value="Submit" class="btnSubmit" /> 
</form> 
</div> 
</BODY> 
</HTML> 

listImages.php:

<?php 
$conn = mysqli_connect("localhost", "root", ""); 
mysqli_select_db("test"); 
$sql = "SELECT imageId FROM output_images ORDER BY imageId DESC"; 
$result = mysqli_query($sql); 
?> 
<HTML> 
<HEAD> 
<TITLE>List BLOB Images</TITLE> 
<link href="imageStyles.css" rel="stylesheet" type="text/css" /> 
</HEAD> 
<BODY> 
<?php 
while($row = mysqli_fetch_array($result)) { 
?> 
    <img src="imageView.php?image_id=<?php echo $row["imageId"]; ?>" /><br/> 
<?php  
} 
    mysqli_close($conn); 
?> 
</BODY> 
</HTML> 

imageView.php:

<?php 
$conn = mysqli_connect("localhost", "root", ""); 
mysqli_select_db("test") or die(mysqli_error()); 
if(isset($_GET['image_id'])) { 
    $sql = "SELECT imageType,imageData FROM output_images WHERE imageId=" . $_GET['image_id']; 
    $result = mysqli_query("$sql") or die("<b>Error:</b> Problem on Retrieving Image BLOB<br/>" . mysqli_error()); 
    $row = mysqli_fetch_array($result); 
    header("Content-type: " . $row["imageType"]); 
    echo $row["imageData"]; 
} 
mysqli_close($conn); 
?> 

listimage.php

+0

如果你在瀏覽器中訪問imageView.php?image_id = 1,會發生什麼?你看到圖像了嗎? (使用有效的image_id) –

+0

No in listimages.php它們是壞圖標,如上圖所示。當我看到listimages.php的代碼視圖然後在他們是「
」,這意味着imageView.php獲得正確的ID。 – John120

+0

我問imageView.php不listimages.php –

回答

1

,這將有助於你

<a href="imageView.php?image_id=<?php echo $row["imageId"]; ?>"> 
    <img src="<?php echo $row['imagedata']; ?>" alt="my picture" height="128" width="128" /> 
</a> 
1

應該

 
    $conn=mysqli_connect("ur_servername_ex_localhost","ur_username","ur_password","ur_db"); 
    mysqli_query($conn, $sql); 

相關問題