2017-09-10 69 views
0

美好的一天,這是我第一次在這裏發佈。錯誤500圖像base64

我想用被編碼爲base64要上傳的圖片在我的域中的圖像, 我的形象完全被上傳到服務器,但我仍然得到一個服務器錯誤500, memory_limit的我php.ini文件是128M`
我使用的XAMPP服務器

<?php 

header('Content-type : bitmap; charset=utf-8'); 

$encoded_string = $_POST['string_encoded']; //encoded string 

$imagename = 'image.png'; 

$decoded_string = base64_decode($encoded_string); 

$path = 'imageses/'.$imagename; 

$file = fopen($path, 'wb'); 

fwrite($file, $decoded_string); 
fclose($file); 

?>` 

回答

0

讓我們假設image.png的大小爲2MB。在這種情況下,只有從base64解碼纔會將大約64 * 2 MB寫入內存,即128 MB。這可能是問題的原因。要修復它,請在php.ini中增加memory_limit。另一個可能的問題可能是腳本被加載了幾次,並行地進行相同的大解碼。如果一切都失敗了,那麼你仍然可以獲得成功,但是不能解碼整個文件,一次只解碼一個較小的數據包,並在儘快計算時忘記數據包。

+0

我試圖使php_ini中的memory_limit = 512M然後保存,但輸出仍然是相同的,我只是刪除$ _POST方法並在其中輸入編碼的字符串默認值,它總是顯示我相同的錯誤 –

+0

@MarkDylanBMercado文件大小是多少? –

+0

這是一個只有5.57 kb文件大小的png圖像文件。 –