我编写了以下代码将图像上传到数据库中,但是,每次我选择图像并按"上传"我得到的只是"等待localhost"并且浏览器上没有任何内容。我使用xampp作为我的localhost。数据库名称是" votingsystem"插入图像的表是"照片"。
运行这个php文件后,我也无法运行其他php文件,因为他们在浏览器上都表现出同样的问题,他们说"等待本地主机"当试图运行它们时。因此,我必须重新启动文件编辑器并再次运行它。这是一个反复出现的问题。
<?php
/**
* Created by PhpStorm.
* User: user1
* Date: 10-Jul-15
* Time: 9:19 PM
*/
mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("votingsystem") or die(mysql_error());
if(isset($_POST['Upload']))
{
$file = $_FILES['image']['tmp_name'];
if(!isset($file))
{
echo "Please select an image.";
}
else
{
$image = addslashes(file_get_contents($_FILES['image']['tmp_name']));
$image_name = addslashes($_FILES['image']['name']);
$image_size = getimagesize($_FILES['image']['tmp_name']);
if($image_size == FALSE)
{
echo "That's not an image";
}
else
{
$insert = mysql_query("INSERT INTO photo VALUES ('', '999', '$image_name', '$image')");
if(!$insert)
{
echo "Problem uploading image!";
}
else
mysql_query($insert) or die(mysql_error());
}
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<title>Image Upload</title>
</head>
<link rel="stylesheet" type="text/css" href="image.css">
<body>
<form action="image.php" method = "post" enctype="multipart/form-data">
<input type = "file" name = "image">
</br>
<input type = "submit" value = "Upload">
</form>
</body>
</html>
&#13;
答案 0 :(得分:0)
http://www.phpro.org/tutorials/Storing-Images-in-MySQL-with-PHP.html
正如@Marc B所说,如果你调用PHP变量$ _FILES,则没有任何意义可以使用addslashes()
。
答案 1 :(得分:0)
是否有特定的理由尝试将整个图像保存到数据库中?我建议在服务器上考虑将图像保存为文件,而仅保留数据库中的文件名。
原因很多,最重要的原因是数据库大小和未触及的性能都有很大的节省。
相反,将整个文件保存在数据库表中可能意味着巨大的数据库大小,从而导致性能显着下降。
因此,如果您决定遵循此提议的方法,PHP代码中的流程可能是:
也许这篇快速文章可以帮助你: http://davidwalsh.name/basic-file-uploading-php(我不是作者)。
希望这有帮助。