PHP : 不上传图片

PHP : Doesn't upload image

<?php

if(isset($_POST["submit-post"])){
    $desc = $_POST['description'];
    if (strpos($desc, "'") !== false) {
        $desc = str_replace("'", "_", $desc);
    }
    $sql_home = "INSERT INTO home (description) VALUES ('$desc');";
    if($conn->query($sql_home) === TRUE){ echo "<br>Great!<br>"; }
    else{ echo("<br>Nope!<br> "); }
    $uploaddir = $_SERVER['DOCUMENT_ROOT']. '/imgs/home/';
    $uploadfile = $uploaddir . basename($_FILES['image']['name']);
    if (move_uploaded_file($_FILES['image']['tmp_name'], $uploadfile)) {
        echo "File is valid, and was successfully uploaded. <br>";
    } else {
        echo "Possible file upload attack! <br>";
        echo "$uploadfile <br>";
    }
    echo '<br>Here is some more debugging info: ';
    print_r($_FILES);
    echo "<br>";
    error_reporting(-1); ini_set("display_errors", true); //?
}

?>

每次我尝试上传图片 (.jpg) 时,它都会显示“可能存在文件上传攻击!”。帮助。 给我两个警告:

Warning: move_uploaded_file(/var/www/html/imgs/home/calcetto.jpg): failed to open stream: Permission denied in /var/www/html/admin/db/manage.php on line 199
Warning: move_uploaded_file(): Unable to move '/tmp/phpGvLsAC' to '/var/www/html/imgs/home/calcetto.jpg' in /var/www/html/admin/db/manage.php on line 199

请注意:

  1. 绝对路径和相对路径都试过了;
  2. php.ini: file_uploads = 开
  3. 我从 php.net
  4. 复制并粘贴了代码
  5. 这个文件是/var/www/html/admin/db/manage.php
  6. 要上传的图片在这里:/var/www/html/imgs/home

这里是 html:

<form action="" method="post" enctype="multipart/form-data">
    <textarea name='description' placeholder='Image description'></textarea><br>
    <input type="file" name="image"><br><br>
    <input type='submit' name='submit-post' value='Upload'></input>
</form>

我正在根据评论写下我的答案。

请通过PHP错误报告检查错误

随便写

error_reporting(-1);
ini_set("display_errors", true);

您需要检查上传目录的权限, 如果你有子目录,那么你需要对两个目录都有写权限

您可以通过以下命令更改权限-R也会更新子目录的权限

chmod -R 777 uploaddirectory