我一直在关注YouTube上的“在MySQL数据库中上传/存储图像”的教程,但两天来一直有这个问题,我在过去的两天里一直在尝试调试这个问题,但找不出是什么问题。
代码如下:
<?php
// connect to database
mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("databaseimage") or die(mysql_error());
// file properties
$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
{
if (!$insert = mysql_query("INSERT INTO store VALUES ('', '$image_name',
'$image')"))
echo "Problem uploading image.";
else
{
$lastid = mysql_insert_id();
echo "Image uploaded.<p />Your image:<p /><img src=get.php?id=$lastid>";
}
}
}
?>每当我尝试上传.png或.jpeg文件时,代码都会命中"else“案例中的"if”案例,并且不传递该案例,并回显“上传图像时出现问题”。我完全按照教程所做的那样做了,教程中的人能够通过那个"if“情况,并实际点击最后一部分并回显"Image uploaded”。
有人知道问题出在哪里吗?
发布于 2013-07-20 15:02:12
如果它抛给你一个上传图片的错误,当你的查询失败时,它可能正在输入if条件,你应该使用mysql_error()来读取一条友好的消息,这是导致你的查询失败的原因。
echo "Problem uploading image.".mysql_error($connection);
//Replace connection with the connection var注意:代码是完全脏的,而且它使用了废弃的
mysql_()。因此,开始学习mysqli_()或PDO吧,而且您的代码很容易出现SQL注入,在将用户提供的任何数据插入数据库之前,最好对数据进行清理并转义字符串。
此外,您没有检查文件扩展名和文件大小,这是由用户上传的,所以您必须这样做,出于安全原因,并将大量文件上传到您的服务器上...
https://stackoverflow.com/questions/17759627
复制相似问题