2017-09-10 3 views
0

Bonjour à tous, c'est ma première fois à poster ici.erreur 500 image base64

Je veux télécharger une image dans mon domaine en utilisant une image qui est codée à base64, mon image a été complètement téléchargée sur le serveur, mais je suis toujours obtenir une erreur 500, serveur memory_limit à mon fichier php.ini est 128M`
J'utilise serveur 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); 

?>` 

Répondre

0

supposons que image.png a une taille de 2 Mo. Dans ce cas, seul le décodage de base64 écrira environ 64 * 2 Mo en mémoire, soit 128 Mo. Cela pourrait être la cause du problème. Pour résoudre ce problème, augmentez memory_limit dans votre fichier php.ini. Un autre problème possible peut être qu'un script est chargé plusieurs fois, en faisant le même gros décodage de manière parallèle. Si tout échoue, alors vous pouvez toujours réussir, mais pas décoder le fichier entier, seulement un paquet plus petit à la fois et en oubliant le paquet lorsqu'il est calculé dès que possible.

+0

J'ai essayé de créer memory_limit = 512M sur le fichier php.ini puis de l'enregistrer, mais la sortie est toujours la même, je supprime simplement la méthode $ _POST et y saisis une valeur par défaut encodée, cela me montre toujours la même erreur –

+0

@MarkDylanBMercado quelle est la taille de votre fichier? –

+0

C'est un fichier image PNG qui n'a que 5,57 Ko de taille de fichier. –