多文件上传:isset($ _ POST ['submit'])返回False

时间:2013-12-13 15:38:25

标签: php html

我使用以下html表单代码,允许用户选择多个文件进行上传。

<form action="uploadFiles.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file[]" multiple /><br>
    <input type="submit" name="submit" value="submit" />
</form>

uploadFiles.php具有以下代码。

<?php
    echo "uploadFiles.php" . "<br>";
    print_r($_POST);
    if(isset($_POST['submit']))
    {
       echo "Post submit" . "<br>";
       if ($_FILES["file"]["error"][0] > 0)
       {
            echo "Error: " . $_FILES["file"]["error"][0] . "<br>";
        }
        else
        {
              echo "No. files uploaded : ".count($_FILES['file']['name'])."<br>";
              echo "Upload: " . $_FILES["file"]["name"][0] . "<br>";
              echo "Type: " . $_FILES["file"]["type"][0] . "<br>";
              echo "Size: " . ($_FILES["file"]["size"][0] / 1024) . " kB<br>";
              echo "Stored in: " . $_FILES["file"]["tmp_name"][0];
        }
    }
?>

由于某种原因,isset($ _ POST ['submit'])总是返回false。我得到以下输出

uploadFiles.php
Array( )

2 个答案:

答案 0 :(得分:1)

您尚未关闭input代码。特别是,您没有关闭<input type="file" name="file[]" multiple>代码,因此可能无法正确添加到表单的$_POST数组中,而是将其添加到{ {1}}数组。只是一个猜测。

答案 1 :(得分:0)

问题似乎与文件大小有关。如果文件大小为11 MB,则该帖子仅适用于其中一个文件。如果我选择$ _POST都是一个空数组。如果文件大小只有这个文件的一半,那么帖子可以使用以下代码。

HTML

 <form action="uploadFiles.php" method="post" enctype="multipart/form-data">
    <label for="file">Filename:</label>
    <input type="file" name="file[]" multiple="multiple"/></br>
    <input type="submit" name="submit[]" value="submit" />
 </form>

uploadFiles.php

<?php
    if(isset($_POST['submit']))
    {
       if ($_FILES["file[]"]["error"] > 0)
       {
            echo "Error: " . $_FILES["file[]"]["error"] . "<br>";
        }
        else
        {
            $numFilesUploaded=count($_FILES['file']['name']);
            echo "No. files uploaded : ".$numFilesUploaded."<br><br>";
            for ($inc=0; $inc<$numFilesUploaded; ++$inc){
                echo "File " . $inc . ": " . $_FILES["file"]["name"][$inc] . "<br>";
                echo "Upload: " . $_FILES["file"]["name"][$inc] . "<br>";
                echo "Type: " . $_FILES["file"]["type"][$inc] . "<br>";
                echo "Size: " . ($_FILES["file"]["size"][$inc] / 1024) . " kB<br>";
                echo "Stored in: " . $_FILES["file"]["tmp_name"][$inc];
                echo "<br><br>";
            }
        }
    }
?>