当前位置: 首页 > 知识库问答 >
问题:

多文件上载:isset($\u POST['submit'])返回False

李飞翼
2023-03-14

我使用以下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['提交'])总是返回false。我得到以下输出

uploadFiles.php
Array( )

共有2个答案

柳志专
2023-03-14

问题似乎与文件的大小有关。如果文件大小为11MB,则post仅对其中一个文件有效。如果我同时选择$\u,则POST是一个空数组。如果文件大小为该大小的一半,则post将使用以下代码处理这两个文件。

超文本标记语言

 <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>";
            }
        }
    }
?>
柴琨
2023-03-14

您没有关闭输入标记。特别是,您没有关闭

 类似资料:
  • 嗨,我正在尝试使用多部分表单上传多个文件 我使用这个,但我得到了错误的请求状态,我如何上传多个文件?

  • 我正在工作一个简单的文件上传网站,一直有麻烦坚持上传文件没有错误。我现在拥有的代码在一个要上传的文件小于~20KB时可以完美地工作,但是对于大于这个值但小于~1MB的文件,只上传了大约~20KB的文件(从而破坏了文件)。 对于大于1MB的文件,上载完全失败并返回502错误。我已经确定要增加multer FileSize/FieldSize限制,并且永远不会收到文件太大的错误。 当一个在~20KB-

  • 在我的主要活动中: 编辑:我在主线程上运行了网络代码,它引发了一个异常。现在为下载创建一个新的线程,它将获得示例PDF(http://www.pdf995.com/samples/PDF.PDF),并将其内容放入文件中。感谢@GreenApps!

  • 我有一个包含一些模型文件的目录,由于某些原因,我的应用程序必须访问本地文件系统中的这些模型文件。 当然,我知道选项的可以上传文件到每个执行器的工作目录,它确实工作。 但是,我希望保留文件的目录结构,因此我提出了选项,即 但当我实际使用它上传时,我发现纱线只是把它放在那里而没有提取,就像它对

  • 我正在尝试在一个请求中上传多个文件到Hapi JS服务器。到目前为止我还不成功。这里是原始请求(取自w3org,使过程尽可能简单)。 这是Hapi端的处理程序配置: 调试request.payload时,我只看到两个字段,“files”和“submit-name”,其中files字段包含--bbc04y边界之间的所有内容,即“--bbc04y\r\ncontent-disposition:file

  • 尝试使用将多个图像文件上载到 而且 我正试图在那里上传两个图像文件。发布数据/图像会产生两次此错误: 无法在S3上创建多部分上载:{“消息”:“访问被拒绝”,“堆栈”:“AccessDenied:访问被拒绝\n在Request.Extractorr(/Vagrant/Node_Modules/AWS-SDK/Lib/Services/S3.js:538:35)\n在Request.CallList