2016-09-22 1 views
0

이미지 업로드 및 PHP 및 MySQL보기 용 코드가 있습니다. "imageUpload.php"에서 "Submit"버튼을 클릭하면 이미지가 데이터베이스에 저장됩니다. "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를 올바르게 가져 오는 imageView.php를 의미합니다. – John120

+0

listimages.php가 아닌 imageView.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);