私は を使用して単一のファイルをアップロードする経験があります<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 では次のようになります。
「アップロード」ボタンをクリックした後は次のようになります。
これは完全に機能する答えのスケッチにすぎません。PHP マニュアル: ファイルアップロードの処理PHP でのファイルアップロードの適切かつ安全な処理の詳細については、こちらをご覧ください。