Bonjour,
Je réalise une application Android où je renseigne des champs de texte, puis un petit dessin (temporaire je n'est pas l'utilité de le sauvegarder dans le téléphone) ensuite le tout est envoyé à un Script PHP par la méthode Post.
La réception des données depuis le script PHP fonctionne très bien, cependant je n'arrive pas réceptionner l'image correctement et ne sachant pas si le problème vient d'android ou du script je suis un peu perdu.
L'image du dessin est un Bitmap sur lequel j'ai dessiné, j'utilise ensuite l'encodeur en Base64 pour convertir cette image en String pour pouvoir l'envoyer en chaine de caractère.
Le String ba1 est envoyé par la méthode POST.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ByteArrayOutputStream bos = new ByteArrayOutputStream(); laSignature.compress(Bitmap.CompressFormat.JPEG, 75, bos); byte[] data = bos.toByteArray(); ba1 = Base64.encodeToString(data, Base64.DEFAULT);
Une fois envoyé j'ai tenté de récupérer la chaine de caractère dans un fichier texte pour ensuite la décoder manuellement.
Code PhP :
J'ai essayé plusieurs fois et comparé les chaines de caractère reçu dans img.txt en dessinant un dessin différent à chaque fois (la chaine de caractère que j'enregistre devrait logiquement être diférente)et la chaine enregistrée est toujours la même. L'image enregistrée est une image toute noir.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 //enregistrer la chaine $fichier = fopen('img.txt', 'w+'); fputs($fichier, $_POST['signature']); fclose($fichier); //enregistrer l'image $fichier = fopen('img.jpg', 'w+'); fputs($fichier, $_POST['signature']); fclose($fichier);
J'ai également essayé d'enregistrer l'image directement.
Et donc voilà je ne saurais pas dire si le problème vient du script PHP ou de la chaine encodé car je découvre un peu l'encodage en Base64. Si une personne a une idée je suis prenneur, Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 $decoded_str = base64_decode($_POST['signature']); $fichier = fopen('img.jpg', 'w+'); fputs($fichier, imagecreatefromstring($decoded_str)); fclose($fichier);
Partager