1

だから私はここに以前の質問を投稿しました:アップロード

そして、解決策を試しましたが、ファイルタイプが正しいかどうかに関係なく、「無効なファイル」と表示されます。これが私のhtmlです:

<form action="upload_file.php" method="post" enctype="multipart/form-data" target="my_iframe">
    Select a file: <input type="file" name="upload">
    <input type="submit">
</form>

そして、ここに私のupload_file.phpがあります:

$allowedExts = array("doc", "docx");
    $extension = end(explode(".", $_FILES["file"]["upload"]));

    if (($_FILES["file"]["size"] < 200000)
    && in_array($extension, $allowedExts)) {
        if ($_FILES["file"]["error"] > 0)
        {
            echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
        }
        else
        {
            echo "Upload: " . $_FILES["file"]["upload"] . "<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("Proposals/" . $_FILES["file"]["upload"]))
            {
                echo $_FILES["file"]["upload"] . " already exists. ";
            }
            else
            {
                move_uploaded_file($_FILES["file"]["tmp_name"],
                "Proposals/" . $_FILES["file"]["upload"]);
                echo "Stored in: " . "Proposals/" . $_FILES["file"]["upload"];
            }
        }
    } else {
        echo "Invalid file";
    }

私も試しました:

$extension = pathinfo( $_FILES["file"]["upload"], PATHINFO_EXTENSION);

そしてやった

die($extension);

それらの両方で、何も印刷されません。2 つの質問があります
1) 上記のコードの何が問題なのですか
2) 応答を受け取るまで iframe を非表示にするにはどうすればよいですか? そして、ユーザーが応答を読んだらそれを消すために、OKボタンのようなものを持っていますか? 役立つ場合の iframe コードは次のとおりです。

<iframe name="my_iframe" src="upload_file.php"></iframe>
4

4 に答える 4

2

変化する

$_FILES["file"]["upload"]

$_FILES["upload"]["name"]

どこでも、他の参考文献と同じ..だから;

$_FILES["file"]["size"] **To** $_FILES["upload"]["size"]

$_FILES["file"]["type"] **To** $_FILES["upload"]["type"]

$_FILES["file"]["tmp_name"] **To** $_FILES["upload"]["tmp_name"]
于 2012-10-02T17:05:59.157 に答える
1

あなたが持っている:

if (($_FILES["file"]["size"] < 200000) && in_array($extension, $allowedExts)) {

あなたが持っているので、それは $_FILES["upload"]["size"] でなければなりません

<input type="file" name="upload">
于 2012-10-02T17:06:33.863 に答える
1

変化する

$_FILES["file"]["size"]

$_FILES["upload"]["size"]

HTMLによると、入力ファイルの name 属性はfileではなくuploadです。

<input type="file" name="upload">
                  HERE ----^
于 2012-10-02T17:07:06.067 に答える
1

このチュートリアルを確認してください: http://www.w3schools.com/php/php_file_upload.asp

$_FILES["upload"] である必要があります

于 2012-10-02T17:08:37.077 に答える