【问题标题】:IIS 7.5 loses $_POST data?IIS 7.5 丢失 $_POST 数据?
【发布时间】:2015-08-06 22:15:29
【问题描述】:

我有以下表格:

<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 数据没有设置。

我怎么知道我的帖子数据没有设置? 当使用此表单进入操作页面时,它会检查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 ( )

【问题讨论】:

  • 我还在寻找答案,似乎不是一个有据可查的话题...
  • 虽然据我所知没有上传超时 - php.ini 中存在整体超时。是否值得在 web.config 文件中增加 sessionState 的超时时间?
  • 我也会尝试 print_r($_REQUEST),然后您应该会看到所有已发布到 action.php 的变量。还有一件事,它可能有助于(无论如何测试)使用error_reporting(-1); 为所有 PHP 错误打开错误报告
  • 发现这个(链接提到类似的症状,但 w/apache) - 建议在进行更改后重新启动服务器。 linuxquestions.org/questions/linux-software-2/…
  • 最后,您应该可以执行以下操作echo "&lt;br /&gt;FILES: "; print_r($_FILES);

标签: php iis post


【解决方案1】:

建议获取代码,并将其移至虚拟机。

如果您放置文件,请为带有 Apache 的 LAMP 堆栈进行配置 - 它是否按预期工作?

在 Apache 上进行测试可以帮助您验证您的 PHP 代码是否正常。

另外,来自 cmets,请访问 http://www.linuxquestions.org/questions/linux-software-2/large-file-upload-%24_post-empty-in-php-281032/Issues transfering data between PHP pages with POST,也许他们会在这方面为您提供帮助。

【讨论】:

    猜你喜欢
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2018-03-30
    • 2019-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多