2017-06-29 42 views
2

我已经使用Laravel框架编写了使用base64字符串上传图片的PHP web服务。 它适用于小型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; 
?> 

期运用上述源代码时,我试图打印小型基站64请求然后它工作正常。当我试图发布大型base64图像时,它返回NULL。

请帮我在哪里出错。另外请建议是否有任何其他方式上传大型基地64字符串在服务器端。

此外,我曾试过把"/Applications/MAMP/bin/php/php7.0.12/conf/php.ini"用下面的值来编辑php.ini

post_max_size 200M 
upload_max_filesize 200M 

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

+0

json_decode需要一个有效的JSON数据进行解码,否则给空 –

+0

看看这个https://stackoverflow.com/questions/949415/overriding-upload-max-filesize(的post_max_size/upload_max_filesize的) – Richard

+0

@RAUSHANKUMAR没有得到大型基地64弦。这是问题。 –

回答

3

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

post_max_size = 8M 
upload_max_filesize = 2M 

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

+0

感谢您的快速响应。我正在使用laravel我需要在config中更改那里 –

+0

请注意,post_max_size是发送到服务器的所有发布数据的大小。这意味着你可以用一个不是最大的数据来达到极限。例如,你在8Mo有一个限制,你发送一张7.9Mo的图片,并在图片之后发送一个文本。您将正确接收图像并为文本获取NULL。所以NULL随着变量达到极限而来。 – Peter