move_uploaded_file 在 Linux Mint 中的 Apache 服务器上不起作用

J3R*_*3RN 3 php apache upload linux-mint

因此,我尝试通过 HTML 表单和简单的 php 脚本进行基本上传,但 move_uploaded_file 函数始终返回 false。我已经在目录上运行了“chmod 777”(当我真正让它工作时,我会更多地处理安全问题),“upload”目录位于 htdocs 文件夹中(实际上是 Ubuntu Server 和 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>
Run Code Online (Sandbox Code Playgroud)

...和 ​​upload_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"];
    }
?>
Run Code Online (Sandbox Code Playgroud)

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

aaa*_*aaa 5

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