我的 $_FILES 数组是空的,即使数据是通过网络发送的

My $_FILES array is empty even though data being is sent over the wire

我有以下表格...

<form class="clearfix" action="/application_submit.php" method="post" enctype="multipart/form-data" name="applicationForm" id="applicationForm">

    <!-- 100 text/select/option inputs or so that I won't include here... -->

    <div class="line">
      <div class="unit size1of1">
        <label class="field_label" for="freeform_application_attachments">Attachments</label>
        <input type="file" name="file_attachments_1" value="" id="freeform_application_attachments0"  /><br/>
        <input type="file" name="file_attachments_2" value="" id="freeform_application_attachments1"  /><br/>
        <input type="file" name="file_attachments_3" value="" id="freeform_application_attachments2"  /><br/>
        <input type="file" name="file_attachments_4" value="" id="freeform_application_attachments3"  /><br/>
        <input type="file" name="file_attachments_5" value="" id="freeform_application_attachments4"  />
      </div>
    </div>
</form>

还有我提交的 JS...

        $('form#applicationForm').validate({
          onkeyup: false,
          onfocusout: false,
          onclick: false,
          submitHandler: function(form) {
            form.submit();
          }
        });

最后,在我的网络选项卡中通过网络发送的内容 headers(在本例中我只放入 2 个文件):

------WebKitFormBoundaryT5oEIdNCfF7vnxWr
Content-Disposition: form-data; name="file_attachments_1"; filename="lemonone-715d1576013f3260da2afa15a3ce26f03bacac72.zip"
Content-Type: application/zip


------WebKitFormBoundaryT5oEIdNCfF7vnxWr
Content-Disposition: form-data; name="file_attachments_2"; filename="browser   marklet.psd"
Content-Type: image/vnd.adobe.photoshop


------WebKitFormBoundaryT5oEIdNCfF7vnxWr
Content-Disposition: form-data; name="file_attachments_3"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryT5oEIdNCfF7vnxWr
Content-Disposition: form-data; name="file_attachments_4"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryT5oEIdNCfF7vnxWr
Content-Disposition: form-data; name="file_attachments_5"; filename=""
Content-Type: application/octet-stream


------WebKitFormBoundaryT5oEIdNCfF7vnxWr--

但是在我的服务器上,这是我得到的...

这是由这段代码生成的...

echo "$_FILES array:<br />";
var_dump($_FILES);

所以我有 enctype="multipart/form-data",我有我的 method="POST",我所有的文件输入都有名称,网络选项卡中的 HTTP POST 表示请求包含要上传的文件 -- 但 仍然 ,server-side 上的 $_FILES 数组为空?

怎么回事?

您可以在此处找到使用 PHP 上传文件的清单:

也许您在 php.ini 中遗漏了某些内容,数据已发送但 PHP 忽略了它。特别是您应该首先检查以下设置:file_uploads = Onpost_max_sizeupload_max_file_size。这些设置也可以在 .htaccess 文件中更改:记得也检查它们。

打开您的 php.ini 文件并查找 file_uploads 确保它已打开, file_uploads = On