我目前有一个文件元素和一个允许用户添加更多文件元素的按钮,这样如果他们愿意,他们可以一次选择多个。我希望能够遍历它们并需要一些帮助,以确定我应该采取什么方向,或者是否有正确的语法来执行此操作。下面是Form,php和JS代码。
形式:
<form action="<?php echo htmlspecialchars($_SERVER['PHP']);?>" method="post" enctype="multipart/form-data" name="upload_form" id="upload_form">
<br />
<input type="file" name="file[]" id="file"/>
<input id="addbutton" type="button" onclick = 'javascript: add()' value="ADD ANOTHER FILE" />
<br />
<input type="submit" id="submit" name="submit" value="SUBMIT" />
</form>
PHP:
if($_POST['submit'] == "SUBMIT")
{
$count = count($_FILES[ "file" ][ "tmp_name" ]);
echo $count;
for($i = 0; $i < $count; ++$i)
{
if($_FILES && $_FILES['file']['name'])
{
//code that does some stuff here
}
}
}
JS:
<script>
function add()
{
var form = document.getElementById("upload_form");
var addButton = document.getElementById('addbutton');
var br = document.createElement("br");
form.insertBefore(br, addButton);
form = document.getElementById("upload_form");
input = document.createElement("input");
input.type="file";
input.name="file[]";
form.insertBefore(input, addButton);
}
答案 0 :(得分:2)
每件事看起来都不错,你只需要添加索引来访问特定上传的文件,如
<?php
// ...
for($i = 0; $i < $count; ++$i)
{
echo $_FILES['file']['tmp_name'][$i];
// ...
答案 1 :(得分:0)
看起来很完美,但您可以将其用于多种选择:
<input type="file" name="file[]" id="file" multiple="multiple" />
你不需要那个javascript ...