INSERT发生但上传却没有

时间:2010-11-03 02:01:22

标签: php file-upload

function Save($name)
    {
        $target_path = "uploads/";
        $target_path = $target_path . basename( $_FILES['file']['name']); 
        if(move_uploaded_file($_FILES['file']['name'], $target_path)) 
        {
            echo "The file ".  basename( $_FILES['file']['name']). 
                 " has been uploaded";
        } 
        else
        {
            echo "There was an error uploading the file, please try again!";
        }

        //save
        $link = mysql_connect('localhost', 'root', 'root');
        if (!$link) {
            die('Could not connect: ' . mysql_error());
        }
        @mysql_select_db('test') or die( "Unable to select database");
        $query = "INSERT INTO test (name)" .
                 "VALUES ('" . $name . "')";
        mysql_query($query);
        mysql_close();
    }

所以插入发生但我无法看到我上传到uploads /目录的.txt文件。但是它插入了DB文件。文件的全名。

为什么?

4 个答案:

答案 0 :(得分:0)

我怀疑是因为权限问题。请你检查你是否有足够的权限写入你上传的目录。给那个目录“写”访问权限

答案 1 :(得分:0)

您的上传显然是失败的,但是您的函数编写方式,无论如何数据库插入都会继续发生。对于初学者,您可能希望将//save功能移动到if语句(显示成功消息的位置)。然后,至少在没有上载的情况下您将无法获取数据库记录。

至于文件上传失败的原因,开始调查的一个好地方是:上传文件夹的存在和权限设置。

答案 2 :(得分:0)

试试这个:

ls -al
chmod 0777 /uploads

答案 3 :(得分:0)

您是否设置了表单的enctype

<form method="post" enctype="multipart/form-data" ...

多年前这对我来说经常被骗:)