0

我已经玩了一段时间了,但根本无法将提交的文件上传到服务器。

有人有想法么?

<?php
  if ($_POST["file"]){

    $allowedExts = array("mp3", "txt");
    $extension = end(explode(".", $_FILES["file"]["name"]));

    echo "Upload: " . $_FILES["file"]["name"] . "<br>";
    echo "Type: " . $_FILES["file"]["type"] . "<br>";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
    {
       echo $_FILES["file"]["name"] . " already exists. ";
    }
    else
    {
       move_uploaded_file($_FILES["file"]["tmp_name"],
                     "upload/" . $_FILES["file"]["name"]);
       echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
    }

  }
?>
4

2 回答 2

0

确保您的表单具有 enctype ...

<form action=".." method=".." enctype="multipart/form-data">
.
.
</form>

希望这可以帮助!

于 2013-02-21T19:50:37.080 回答
-1

您应该检查 的返回值move_uploaded_file,因为如果由于任何原因无法移动文件,它将返回 FALSE。如果您打开了警告,那么 PHP 将发出警告,为您提供有关失败原因的更多信息。您可以使用脚本顶部的以下代码打开警告:

error_reporting(E_WARNING);
ini_set('display_errors', '1');

你的上传目录是可写的吗?如果它不可写,那么显然move_uploaded_file会失败。

编辑:

正如另一位用户指出的那样,该if ($_POST["file"])行必须是if ($_FILES["file"]). 这可能就是所有的错误。

于 2013-02-21T19:40:34.640 回答