HTTP POSTを使用して、HTMLとPHPで複数のファイルを選択してアップロードするにはどうすればいいですか? 質問する

HTTP POSTを使用して、HTMLとPHPで複数のファイルを選択してアップロードするにはどうすればいいですか? 質問する

私は を使用して単一のファイルをアップロードする経験があります<input type="file">。しかし、一度に複数のファイルをアップロードすると問題が発生します。

たとえば、一連の画像を選択して、一度にサーバーにアップロードしたいとします。

可能であれば、単一ファイル入力コントロールを使用すると便利です。

これを実現する方法を誰か知っていますか?

ベストアンサー1

これは可能ですHTML5例 (PHP 5.4):

<!doctype html>
<html>
    <head>
        <title>Test</title>
    </head>
    <body>
        <form method="post" enctype="multipart/form-data">
            <input type="file" name="my_file[]" multiple>
            <input type="submit" value="Upload">
        </form>
        <?php
            if (isset($_FILES['my_file'])) {
                $myFile = $_FILES['my_file'];
                $fileCount = count($myFile["name"]);

                for ($i = 0; $i < $fileCount; $i++) {
                    ?>
                        <p>File #<?= $i+1 ?>:</p>
                        <p>
                            Name: <?= $myFile["name"][$i] ?><br>
                            Temporary file: <?= $myFile["tmp_name"][$i] ?><br>
                            Type: <?= $myFile["type"][$i] ?><br>
                            Size: <?= $myFile["size"][$i] ?><br>
                            Error: <?= $myFile["error"][$i] ?><br>
                        </p>
                    <?php
                }
            }
        ?>
    </body>
</html>

ファイル ダイアログで 2 つの項目を選択した後、Chrome では次のようになります。

chrome 複数ファイル選択

「アップロード」ボタンをクリックした後は次のようになります。

複数のファイルをPHPに送信する

これは完全に機能する答えのスケッチにすぎません。PHP マニュアル: ファイルアップロードの処理PHP でのファイルアップロードの適切かつ安全な処理の詳細については、こちらをご覧ください。

おすすめ記事