2017-06-29 87 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