2017-09-10 11 views
0

Guten Tag an alle, es ist mein erstes Mal hier zu posten.Fehler 500 Bild base64

Ich mag ein Bild in meiner Domain mit einem Bild hochladen, der Base64 codiert ist, wurde mein Bild vollständig auf den Server hochgeladen, aber ich bin immer noch einen Server-Fehler 500, Die memory_limit an meinem bekommen php.ini ist 128M`
ich verwende XAMPP Server

<?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); 

?>` 

Antwort

0

Nehmen wir an, image.png eine Größe von 2 MB hat. In diesem Fall schreibt nur die Decodierung von base64 ungefähr 64 * 2 MB in den Speicher, also 128 MB. Dies könnte der Grund für das Problem sein. Um es zu beheben, erhöhe memory_limit in deiner php.ini. Ein anderes mögliches Problem kann sein, dass ein Skript mehrere Male geladen wird und die gleiche große Dekodierung parallel durchführt. Wenn alles schief geht, kann man immer noch Erfolg haben, aber nicht die ganze Datei entschlüsseln, nur ein kleineres Paket auf einmal und das Paket so schnell wie möglich vergessen.

+0

Ich habe versucht, die memory_limit = 512M auf der php.ini und dann speichern, aber die Ausgabe ist immer noch die gleiche, ich lösche nur die $ _POST-Methode und geben Sie einen codierten String Standardwert, es zeigt es mir immer der gleiche Fehler –

+0

@MarkDylanBMercado was ist die Größe Ihrer Datei? –

+0

Es ist eine PNG-Bilddatei, die nur 5,57 kb Dateigröße hat. –