PHP忽略发布的数据

时间:2013-09-02 21:47:01

标签: php post

我正在尝试将图像作为base64编码的字符串发布到php页面,并且在图像文件小于大约800KB时工作正常但如果文件较大,则$ _POST var缺少图像值。 / p>

发布数据看起来像

email=xyz@xyz.com&image={image base64 encoded}&name=Bob

如果我使用var_dump($ _ POST)检查$ _POST var并且文件小于800KB,则打印以下内容:

array(3) {
    ["email"]=>string(11) "xyz@xyz.com"
    ["image"]=>string(936816) "{image base64 encoded}"
    ["name"]=>string(3) "Bob"
}

...如果文件大于800KB,则打印:

array(2) {
    ["email"]=>string(11) "xyz@xyz.com"
    ["name"]=>string(3) "Bob"
}

但在这两种情况下,数据肯定会发布到php脚本(我通过fiddler检查了webrequests)。

post_max_size设置为8MB,memory_limit设置为128MB,所以这应该不是问题。

提前感谢任何建议!

1 个答案:

答案 0 :(得分:0)

我认为它与服务器限制有关...尽管POST数据没有限制,但有时(大多数情况下)存在一些传出/传入服务器/脚本限制。 你可以尝试gzip二进制内容,试图通过POST推送它吗?

$encoded = base64_encode(gzcompress(serialize($original)));

$original = unserialize(gzuncompress(base64_decode($_POST['encoded'])));

Idea Source