IIS 7.5丢失了$_POST数据?

3

我有一个如下的表单:

<form method="post" action="./action.php?a=create" enctype="multipart/form-data">
    <input name="formType" type="hidden" value="file" required />
    <input name="formParent" type="hidden" value="<?php echo $parentID; ?>" required />
    <table class="fixed">
        <tr>
            <td>
                <p>Display Name</p>
            </td>
            <td>
                <input name="formName" type="text" placeholder="Enter File Name" autofocus autocomplete="off" required />
            </td>
        </tr>
        <tr>
            <td>
                <p>Select a File</p>
            </td>
            <td>
                <input name="formFile" type="file" placeholder="Select a File" required />
            </td>
        </tr>
        <tr>
            <td></td>
            <td>
                <button class="confirm btn-warning" type="submit">Submit</button>
            </td>
        </tr>
    </table>
</form>

当我尝试上传小于20MB的文件到我的服务器时,一切正常。但是当我尝试上传1GB大小的大文件时,我的$_POST数据不设置。
如何知道我的post数据未设置? 使用此表单访问操作页面时,它会检查所设置的formType并相应地显示/运行。但是,当我尝试上传较大的文件时,它会说$_POST ['formType']未设置,尽管从表单中看来,它明确设置了。
我的当前PHP.ini配置具有以下不同设置:upload_max_filesize = 5000Mpost_max_size = 5000M 我还有一个web.config文件,其中声明:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="2147483648" />
      </requestFiltering>
    </security>
        <staticContent>
            <mimeMap fileExtension=".zipx" mimeType="application/x-zipx-compressed" />
        </staticContent>
  </system.webServer>
    <system.web>
        <sessionState timeout="60" />
    </system.web>
</configuration>

为什么在等待文件上传一段时间后,$_POST数据会丢失?是否可以更改表单上传超时时间?

编辑:

print_r($_POST) 返回 Array ( )


我还在寻找答案,似乎这不是一个有充分文献资料的话题... - FileParts
据我所知,PHP没有上传超时时间限制,但是在php.ini文件中有一个总的超时时间限制。是否值得增加web.config文件中sessionState的超时时间限制? - Adam T
我也会尝试使用print_r($_REQUEST),然后您应该能够看到所有POST到action.php的变量。还有一件事,为了测试,打开所有PHP错误的错误报告可能会有所帮助,使用error_reporting(-1); - Adam T
发现这个链接(提及类似症状,但与apache有关)- 建议在进行更改后重新启动服务器。http://www.linuxquestions.org/questions/linux-software-2/large-file-upload-%24_post-empty-in-php-281032/ - Adam T
最后,您应该能够执行以下操作 echo "<br />FILES: "; print_r($_FILES); - Adam T
请参考 @shaunakde 的答案,解决在 PHP 页面之间传递数据的问题。他提到了 IIS 更改 maxAllowedContentLength 的方法,并提供了更详细的链接。 - Adam T
1个回答

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接