发布上传图片

时间:2013-07-20 06:59:18

标签: php file-upload

我一直在关注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”的情况并实际触及最后一部分,并回应“图像上传。”

任何人都知道问题可能是什么?

1 个答案:

答案 0 :(得分:1)

如果您的查询失败,如果它导致问题上传图片错误而不是可能进入if条件,则应使用mysql_error()来读取友好的消息,是什么让你的查询失败。

echo "Problem uploading image.".mysql_error($connection); 
//Replace connection with the connection var
  

注意:代码完全是脏的,也使用了已弃用的mysql_()。所以   开始学习mysqli_()或PDO,您的代码也容易进行SQL注入,在数据库中插入任何用户提供的数据之前,更好地清理数据并转义字符串

此外,您没有检查文件扩展名和用户上传的文件大小,因此出于安全原因您必须这样做并保存上传到服务器上的大文件...