Php move_上传的_文件在Linux Mint中的Apache服务器上不工作

Php move_上传的_文件在Linux Mint中的Apache服务器上不工作,php,apache,upload,linux-mint,Php,Apache,Upload,Linux Mint,所以我试图通过一个HTML表单和一个简单的php脚本来完成一个基本的上传,但是move_upload_file函数总是返回false。我已经在这个目录上运行了“chmod 777”(当我真正让它工作时,我会处理更多的安全问题),而“upload”目录在htdocs文件夹中(实际上是Ubuntu服务器和Linux Mint中的/var/www) 表格如下: <html> <body> <form action="upload_file.php" method="po

所以我试图通过一个HTML表单和一个简单的php脚本来完成一个基本的上传,但是move_upload_file函数总是返回false。我已经在这个目录上运行了“chmod 777”(当我真正让它工作时,我会处理更多的安全问题),而“upload”目录在htdocs文件夹中(实际上是Ubuntu服务器和Linux Mint中的/var/www)

表格如下:

<html>
<body>

<form action="upload_file.php" method="post"
enctype="multipart/form-data">
<label for="file">Filename:</label>
<input type="file" name="file" id="file" /> 
<br />
<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

文件名:

…并上传_file.php

<?php
    if ($_FILES["file"]["error"] == 0){
        if (file_exists("upload/" . $_FILES["file"]["name"])){
            echo $_FILES["file"]["name"] . " already exists. ";
        }else{
            if(move_uploaded_file($_FILES["file"]["tmp_name"],"/var/www/upload/" . $_FILES["file"]["name"])){ 
                echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
            }else{
                echo "Failed to move uploaded file";
            }
        }
    }else{
        echo "Return Code: " . $_FILES["file"]["error"];
    }
?>


当我尝试上传一个小JPEG时,我得到“无法移动文件”。有什么想法吗?

您的脚本需要能够写入目标目录,在这种情况下,目标目录是/var/www/upload/(是您更改权限的目录吗?)。此外,您正在使用客户端的本地名称,这可能是一个问题和安全问题(但不一定是原因)。

Wow…我更改了/var/www/的权限,并认为我是递归更改的…不。专门更改了/var/www/upload的权限,现在它可以工作了…谢谢!不要使用
['name']
参数来存储文件,除非您采取了大量安全预防措施。该名称值完全由远程用户控制,用户可以在服务器上的任何文件上乱涂乱画。例如,他们可以对上载进行黑客攻击,并将其文件命名为
。/../../../../etc/passwd
。启用完全错误报告将错误消息记录到一个文件中。您应该看到详细信息,以便减少所需的猜测量。