如何使用PHP脚本将图像上传到数据库?

Sim*_*ode 1 php mysql database image

这是我上传的代码..但它不起作用..我使用了file_get_contents函数..上传图片

</head>
<body>
    <form action="upload1.php" method="POST" enctype="multipart/form-data">
    File: 
    <input type="file" name="image"/> 
    <input type="submit" value="Upload image" />

    </form>

<?php 

//connect to the database
$con = mysql_connect("localhost","root", "");
if(!$con)
 {
 die('Could not connect to the database:' . mysql_error());
 echo "ERROR IN CONNECTION";
}

mysql_select_db("imagedatabase", $con);


//file properties

 echo $file = $_FILES['image']['tmp_name']; 
 echo '<br />';

 if(!isset($file))
echo "Please select an image";

else
{
$image = file_get_contents($_FILES['image']['tmp_name']);
echo $image_name = addslashes($_FILES['image']['name']); echo '<br \>';
echo $image_size = getimagesize($_FILES['image']['tmp_name']);

if($image_size == FALSE)
    echo "That's not an image";
    else
{
        $insert = mysql_query("INSERT INTO images (image) VALUES    ($image)",$con);
if(!$insert)
    echo "Problem uploding the image. Please check your database";  
else 
{
    $last_id = mysql_insert_id();
    echo "Image Uploaded. <p /> Your image: <p /><img src=display.php?        id=$last_id>";
    }
}

}
mysql_close($con);
?>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

并且检索/显示的代码就是这样的..

<?php
 //connect to the database
 mysql_connect("localhost","root", "") or die(mysql_error());
 mysql_select_db("mydb") or die(mysql_error());

 //requesting image id

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

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

header("Conten-type: image/jpeg");

 echo $image;


 mysql_close($connect);
 ?>
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为"imagedatabase"的数据库和一个表

Ego*_*ich 8

将图像存储在数据库中是个坏主意.在数据库中存储一个路径,通过.htaccess关闭带有图像的目录,并在硬盘上使用它.


为什么不应该在DB中存储文件?

如果您将使用DB来存储图像您将拥有:

  1. 慢查询
  2. 灾难性指数的大小
  3. 桥上的高负载php < - > mysql
  4. 编辑照片的问题(您需要获取图像,修改内容并再次插入所有数据.哦,没有)
  5. 将文件从一个地方传输到另一个地方的问题
  6. StackOverflow上的新问题«如果文件不是文件,而是字符串,如何处理文件»