如何使用HTTP POST使用HTML和PHP选择和上传多个文件?
我有使用单文件上传的经验。但是,我在一次上传多个文件时遇到问题。<input type="file">
例如,我想选择一系列图像,然后一次将它们上传到服务器。
如果可能,最好使用单个文件输入控件。
有谁知道如何做到这一点?
我有使用单文件上传的经验。但是,我在一次上传多个文件时遇到问题。<input type="file">
例如,我想选择一系列图像,然后一次将它们上传到服务器。
如果可能,最好使用单个文件输入控件。
有谁知道如何做到这一点?
这在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 中正确、安全地处理文件上载的更多信息。
创建多文件上传需要做一些事情,实际上它非常基本。你不需要使用Java,Ajax,Flash。只需构建一个普通的文件上传表单,从以下开始:
<form enctype="multipart/form-data" action="post_upload.php" method="POST">
然后是成功的关键;
<input type="file" name="file[]" multiple />
不要忘记那些括号!在post_upload.php请尝试以下操作:
<?php print_r($_FILES['file']['tmp_name']); ?>
请注意,您得到一个包含tmp_name数据的数组,这意味着您可以使用带有文件“number”示例的第三对括号访问每个文件:
$_FILES['file']['tmp_name'][0]
您可以使用 php count() 来计算所选文件的数量。好好运气!