2016-09-22 4 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

あるべき役立つだろうか?イメージが見えますか? (有効なimage_idを持つ) –

+0

listimages.phpにはありません。上記の画像に見られるように、壊れたアイコンです。 listimages.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

それはあなたがお使いのブラウザでimageView.php?image_idは= 1を訪問したらどうなりますか

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

関連する問題