PHP空的$_POST

3
我通过HTTP POST向PHP发送数据。当数据小于8MB(8192KB)时,这个方法很有效,但是当发送更大的数据量时,PHP会显示$_POST变量为空。我强调,$_POST变量甚至不包含发布字段的名称,它作为空数组存在。关键点似乎在8.0MB和9.0MB之间,并且随着数据继续增加而变得更高。
我尝试了以下方法,但没有成功:
ini_set('memory_limit', '500M');
ini_set('post_max_size', '220M');
ini_set('upload_max_filesize', '220M');

我需要通过HTTP POST传递数据,数据不能以文件的形式上传。

此外,Apache能否负责这个问题?

任何帮助将不胜感激。


3
8MB等于1024KB吗?真的吗?上次我查的时候是8192KB... 8Mb(兆比特)等于1024KB(千字节),但在PHP / Apache方面,这实际上并不那么重要。 - DaveRandom
你有通过ini_set修改这些设置的访问权限吗? - Michael Sazonov
@Michael Sazonov 我可以通过 ini_set 来更改最大执行时间,就像这样 ini_set('max_execution_time', 300);。所以我认为是的。 - Chris Smith
@Michael Sazonov,没有 .htaccess 文件。 - Chris Smith
ini_set('post_max_size', '220M');ini_set('upload_max_filesize', '220M'); 在 PHP 脚本中不起作用,因为它们是在 PHP 获取文件之后应用的。您应该在 php.ini、.htaccess 或 vhost 配置中定义它们。 - piotrekkr
3个回答


2

请查看文档注释。当脚本被执行时,更改某些设置(例如post_max_size)已经太晚了。要更改这些值,请尝试使用像这样的.htaccess文件:

php_value upload_max_filesize 200M
php_value post_max_size 200M

或者您可以直接在php.ini文件中更改这些设置。

0

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