Php 插入发生,但上载不成功';T

Php 插入发生,但上载不成功';T,php,file-upload,Php,File Upload,因此,插入发生了,但我无法看到上载到uploads/目录中的.txt文件。但是它被插入到数据库文件中。文件的全名 为什么?我怀疑这是因为权限问题。您是否检查了您是否有足够的权限写入要上载到的目录。是否授予对该目录的“写入”访问权限您的上载显然失败了,但您编写函数的方式是,数据库插入仍在进行,并且无论如何都会发生。对于初学者,您可能希望将//save功能向上移动到if语句中(在该语句中显示成功消息)。然后,至少在没有上载的情况下,您不会获得db记录 至于文件上载失败的原因,一个好的开始调查的地方是

因此,插入发生了,但我无法看到上载到uploads/目录中的.txt文件。但是它被插入到数据库文件中。文件的全名


为什么?

我怀疑这是因为权限问题。您是否检查了您是否有足够的权限写入要上载到的目录。是否授予对该目录的“写入”访问权限您的上载显然失败了,但您编写函数的方式是,数据库插入仍在进行,并且无论如何都会发生。对于初学者,您可能希望将
//save
功能向上移动到
if
语句中(在该语句中显示成功消息)。然后,至少在没有上载的情况下,您不会获得db记录

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

尝试以下方法:

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();
    }

您是否设置了表单的
enctype

ls -al
chmod 0777 /uploads

错误是什么<代码>变量转储($\文件)
并查看它是否填充了您期望的内容。不妨仔细检查您的html表单——单输入类型=文件,正确的名称,等等?(抓取…)我这么说是因为您插入到数据库中的名称显然不是从实际文件名派生的,而是从函数参数派生的,所以。。。可能会误导你。。。
<form method="post" enctype="multipart/form-data" ...