Salut,
Je bloque sur une feature que je suis en train de faire de récupération d'un canvas dessinable (fait avec raphael JS) ,
j'envoi les datas de la façon suivante :
avec mes outils de debug, je vois bien les datas passé lors de la requete XHR
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 var dataURL = document.getElementById('renderCanvas').toDataURL("image/png"); dataURL = dataURL.replace('data:image/png;base64,',''); $.ajax( { url : 'ajax/export-image.php', data : {image:dataURL}, type : 'post', dataType :'json', success: function (j) { } }
le soucis c est que coté PHP , je recois $_POST['image'] vide.. pourtant mon php.ini limite les données post à 700M
Code : Sélectionner tout - Visualiser dans une fenêtre à part image=iVBORw0KGgoAAAA...
autant vous dire que je suis bien en dessous avec mon image de 400*600..
Code : Sélectionner tout - Visualiser dans une fenêtre à part post_max_size = 700M
sur ce serveur, aucun soucis pour d autres types de variables post, mais la ca coince, si je modifie les données postés pour rajouter, par exemple test=1, je le récupère bien coté PHP, mais PAS mon image.
du coup , je me suis tourné vers file_get_contents('php://input');, la je récupere bien mon buffer d image, mais en l ecrivant dans un fichier, apres plusieurs test, d abord un base64_decode puis fwrite ou imagefromstring ou file_puts_contents , j'ai toujours un PNG invalide d écrit (impossible de le lire dans photoshop ou l apercu de l OS)
pourtant à regarder le fichier dans un editeur, l entete a l air (a peu près) correcte :
je ne sais plus trop ou regarder..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 PNG IHDR
code PHP ecrivant l image
Code php : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 $data = $_POST['image']; $img = $data; $data = base64_decode($img); $rand_name = $userId.'_'.rand(10000,999999).'.png'; $fp = fopen('medias/player_painting/'.$rand_name,'wb'); fwrite($fp,$data); fclose($fp);
une suggestion ?
Partager