【问题标题】:Post request getting null at server side?发布请求在服务器端变为空?
【发布时间】:2017-12-03 06:29:47
【问题描述】:

我使用 Laravel 框架 编写了 PHP 网络服务,以使用 base64 字符串上传图片。 它适用于小型 base64 字符串。但是当我尝试生成 5 MB 图像的 base64 字符串时,它在服务器端收到 NULL 请求。 这是PHP服务器端代码:

<?php
  $post_data = file_get_contents("php://input");

  $post_data = json_decode($post_data);
  var_dump($post_data);exit;
 ?>

当我尝试打印小的 base 64 请求时使用上面的源代码,它工作正常。当我尝试发布大型 base64 图像时,它返回 NULL。

请帮助我哪里出错了。另外请建议是否有其他方法可以在服务器端上传大型 base 64 字符串。

我还尝试使用以下值在"/Applications/MAMP/bin/php/php7.0.12/conf/php.ini" 处编辑php.ini

post_max_size 200M
upload_max_filesize 200M

并尝试重新启动服务器,但仍然出现相同的错误。

【问题讨论】:

  • json_decode需要有效的json数据才能解码,否则为null
  • 看看这个stackoverflow.com/questions/949415/… (post_max_size / upload_max_filesize)
  • @RAUSHANKUMAR 没有得到大的 base 64 字符串。这就是问题所在。
  • 更改php.ini中post_max_sizeupload_max_filesize的大小

标签: php laravel post


【解决方案1】:

您可能达到了 PHP 限制。检查php.ini 文件中的post_max_sizeupload_max_filesize 设置。

post_max_size = 8M
upload_max_filesize = 2M

如果更改这些值,则需要重新启动 PHP。

【讨论】:

  • 感谢您的快速回复。我正在使用 laravel 我需要在配置中进行更改
  • 请注意 post_max_size 是您发送到服务器的所有发布数据的大小。这意味着您可以使用不是大数据的数据来达到极限。例如,您有 8Mo 的限制,并且您发送了 7.9Mo 的图片以及在图片之后的文本。您将正确接收图像并为文本获得 NULL。所以 NULL 伴随着变量达到了极限。
猜你喜欢
  • 2016-02-27
  • 1970-01-01
  • 1970-01-01
  • 2017-11-27
  • 2023-03-25
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
相关资源
最近更新 更多