3

我正在尝试将图像作为 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,所以这应该不是问题。

在此先感谢您的任何建议!

4

1 回答 1

0

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

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

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

创意来源

于 2013-09-02T22:16:11.823 回答