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 に答える