0

PHPアップロードスクリプトを機能させようとしています。しかし、$_FILES が空の配列のように見える理由がわかりません。以下の私のスクリプトで何がうまくいかなかったのか、誰かが光を当てることができますか?

任意のファイルを /var/www/test/ フォルダーにアップロードすることを想定しています...

<html>
<body>
<?php
    if (isset($_POST['Submit'])) {

            $target_path = "/var/www/test/";
            $target_path = $target_path . basename($_FILES['myupload']['name']);

            if(!move_uploaded_file($_FILES['myupload']['tmp_name'], $target_path)) {

                echo '<pre>';
                print 'The $_FILES content is :';
                print_r($_FILES);
                var_dump($_FILES);
                echo '<pre>';
                print 'the target path is:' . $target_path;
                echo '<pre>';
                print 'the $_POST variable content is :';
                print_r($_POST) ;
                echo '<pre>';
                echo 'Your image was not uploaded.';
                echo '</pre>';

              } else {

                echo '<pre>';
                echo $target_path . ' succesfully uploaded!';
                echo '</pre>';

            }

        }
?>

<form method="POST" action="" enctype"multipart/form-data">
        Choose an image to upload:
        <br>
        <input type="file" name="myupload">
        <br>
        <br>
        <input type="submit" value="Upload(This_is_just_button_name_display)" name="Submit">
</form>
</body>
</html>
4

1 に答える 1

0

$_FILES をダンプしないでください。ダンプしたことはなく、問題なく動作します。このコードを試して、php を別のファイルに入れてフォームをリダイレクトし、この行をスクリプトの最後に追加します。

<META HTTP-EQUIV="REFRESH" CONTENT="0;URL=samplehtml.html">

したがって、最終的なコードは次のとおりです。

<?php
    if (isset($_POST['Submit'])) {

            $target_path = "/var/www/test/";
            $target_path = $target_path . basename($_FILES['myupload']['name']);

            if(!move_uploaded_file($_FILES['myupload']['tmp_name'], $target_path)) {

                echo '<pre>';
                print 'The $_FILES content is :';
                print_r($_FILES)
                echo '<pre>';
                print 'the target path is:' . $target_path;
                echo '<pre>';
                print 'the $_POST variable content is :';
                print_r($_POST) ;
                echo '<pre>';
                echo 'Your image was not uploaded.';
                echo '</pre>';

              } else {

                echo '<pre>';
                echo $target_path . ' succesfully uploaded!';
                echo '</pre>';

            }

        }
?>

今はうまくいくはずです。

于 2013-07-01T04:38:00.003 に答える