【问题标题】:PHP ignores posted dataPHP 忽略发布的数据
【发布时间】:2013-09-02 21:47:01
【问题描述】:

我正在尝试将图像作为 base64 编码字符串发布到 php 页面,当图像文件小于约 800KB 时它可以正常工作,但如果文件更大,$_POST var 缺少图像值。

发布数据看起来像

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,所以这应该不是问题。

提前感谢您的任何建议!

【问题讨论】:

标签: php post


【解决方案1】:

我认为这与服务器限制有关...虽然 POST 数据没有限制,但有时(大部分时间)存在一些传出/传入服务器/脚本限制。 您可以尝试 gzip 二进制内容并尝试通过 POST 推送它吗?

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

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

Idea Source

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-04-13
    • 2012-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-04-02
    • 1970-01-01
    • 2012-03-14
    相关资源
    最近更新 更多