我在编译php时遇到这些错误


  上载文件失败!
      数组([type] => 2 [message] => move_uploaded_file():无法将'/ tmp / phpuFeMBl'移动到'upload / horaizontal-hilly-evening.jpg'[file]
  => /var/www/html/directoryUpload/index.php [line] => 10)


在此之前,我遇到了类似>>的错误


  上载文件失败!
      数组([type] => 2 [message] => move_uploaded_file()期望参数1为字符串,给定数组为[file] =>
  /var/www/html/directoryUpload/index.php [line] => 9)




实际上,我需要将一些项目作为实践项目上传并显示到我的投资组合站点中。

我在php文件附近有上载文件夹。

PHP代码

<?php
$count = 0;
$uploads_dir = 'upload/';

if ($_SERVER['REQUEST_METHOD'] == 'POST'){
    foreach ($_FILES["files"]["name"] as $key => $name) {
      if (move_uploaded_file($_FILES['files']['tmp_name'][$key], 'upload/'.$name)) {
            $count++;
          echo "<P>FILE UPLOADED TO: $target_file</P>";
       } else {
          echo "<P>MOVE UPLOADED FILE FAILED!</P>";
          print_r(error_get_last());
       }

    }

}
?>


HTML代码

<!DOCTYPE HTML>
<html>
    <head>
        <title>Directory Upload using webkidriectory</title>
    </head>

    <body>
        <div class="wrap">
            <?php
            if ($count > 0) {
                echo "<p class='msg'>{$count} files uploaded</p>\n\n";
            }
            ?>

            <form method="post" enctype="multipart/form-data">
                <input type="file" name="files[]" id="files" multiple="" directory="" webkitdirectory="" mozdirectory="">
                <input class="button" type="submit" value="Upload" />
            </form>

        </div>
    </body>
</html>

最佳答案

例如,如果您在Debian服务器上使用apache运行脚本,则该脚本由名为www-data和组www-data的用户执行。在这种情况下,您应该使用以下命令将上传文件夹的所有者更改为www-data

chown www-data:www-data uploads


并且要确保允许新所有者写信给您,应通过以下方式授予他读写权限:

chmod 644 uploads


我怀疑缺少写权限是您失败的原因。

另一种简单但安全性较低的方法是将chmod更改为777,而不管所有者如何。但这意味着任何用户都可以读写并执行该文件夹。

09-27 03:42
查看更多