0

我目前有一个文件元素和一个允许用户添加更多文件元素的按钮,这样如果他们愿意,他们可以一次选择多个。我希望能够遍历它们,并且需要一些帮助来确定我应该采取什么方向,或者是否有正确的语法来做到这一点。表单、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);
}

4

2 回答 2

2

一切看起来都很好,你只需要添加索引来访问特别上传的文件,比如

   <?php

   // ...
    for($i = 0; $i < $count; ++$i)
    {
        echo $_FILES['file']['tmp_name'][$i];
     // ...
于 2013-09-12T16:38:40.113 回答
0

看起来很完美,但您可以将其用于多项选择:

<input type="file" name="file[]" id="file" multiple="multiple" />

你不需要那个javascript...

于 2013-09-12T16:43:35.570 回答