【发布时间】: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 = 5000M 和post_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 "<br />FILES: "; print_r($_FILES);