如何从MySQL PHP中检索图像

时间:2014-07-07 09:25:06

标签: php mysql

我在检索最近保存在数据库中的图像时遇到问题。它改为显示这个破碎的图像图标

表单页码:

<form id "formUpload" action="uploadimage.php" method="POST"enctype="multipart/form-data" target="iframe">
<input type="file" name="image" id "image" style="background-color:#000">
<br>
<input type="submit" value="Upload">
</form>

<iframe name ="iframe" width="140" height="216">
<img style="min-height: 216; max-width: 140; max-height: 216px;" id="image" />
<br />
<br />
</iframe>


上传图片代码(位于不同的文件中):
$ lastid用于获取数据库中最新保存的图像,以显示在表单页面上。

include("databaseconnect.php");

//file properties
$file = $_FILES['image']['tmp_name'];

if(!isset($file))
{
    echo "Select Image File: ";   
}

else
{
$image = addslashes($_FILES['image']['tmp_name']);
$image_name = addslashes($_FILES['image']['imageNAME']);
$image_size = getimagesize($_FILES['image']['tmp_name']);

if($image_size==FALSE)
{
echo "thats not an image";
}
else
{
if(!$insert = mysql_query("INSERT INTO tblcinema VALUES ('', '', '', '', '', '', '', '', '', '', '$image', '$image_name', '')"))
{
echo "Upload Image Failed";
}

else
{
$lastid = mysql_insert_id();
echo "<img src=uploadimage.php?id=$lastid>";  
}
}
}


将图像显示在表单页面代码中(也在不同的文件中):

include("databaseconnect.php");

$id = addslashes($_REQUEST['imageID']);

$image = mysql_query("SELECT * FROM tblcinema WHERE imageID = $id");
$image = mysql_fetch_assoc($image);
$image = $image['image'];

header('Content-type: image/jpeg');

echo $image;


在数据库表中,我已经使用了BLOB类型。

请尽快帮我解决这个问题!!!我非常感谢:)

4 个答案:

答案 0 :(得分:0)

首先,您需要将上传的文件移动到特定文件夹 通过:

`move_uploaded_file(file,location);` 

检查你在$ image中得到了什么它必须是图像文件的路径 您可以通过其路径获取图像:

<img style="min-height: 216; max-width: 140; max-height: 216px;" id="image" src="<?php echo $image; ?>" />

答案 1 :(得分:0)

您并未将实际图像(二进制数据)存储到数据库中,而是tmp_name(字符串)。使用file_get_contents(),如下所示:

$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));

答案 2 :(得分:0)

您没有将图像存储在任何地方

您需要将图像文件从临时文件夹移动到上传文件夹,并将路径存储到数据库中

答案 3 :(得分:0)

首先移动您上传的文件,然后按路径获取:

if(!isset($file))
{
    echo "Select Image File: ";   
}

else
{

    $image = addslashes($_FILES['image']['tmp_name']);
    $image_name = addslashes($_FILES['image']['imageNAME']);
    $image_size = getimagesize($_FILES['image']['tmp_name']);
    $uploaddir   = "Directory where files can be store";
    $upload_path =  $uploaddir.'/'.$image_name;

    move_uploaded_file($_FILES["image"]["tmp_name"],$upload_path));
//other codes goes here
}

to get the value of image :

    <img style="min-height: 216; max-width: 140; max-height: 216px;" id="image" src="folder-path/<?php echo $image; ?>" />