Bonjour à tous,
j'ai un ptit problème PHP. J'utilise Flex pour envoyer des requêtes POST sur un script Java. Ce sont de grosses requêtes, avec ~100 paramètres et un bon paquet de données binaires. Ce qui donne des requêtes assez lourdes, quelques dizaines de Ko.
Côté Java, je n'ai aucun problème (je reçois toutes les données, et suis en mesure de les traiter).
Mais lorsque j'essaie de remplacer Java par PHP, je ne reçois plus qu'une partie des données...
Côté Flex, mon code ressemble à ceci (j'utilise HTTPService pour envoyer les données):
Le problème est que j'envoie carrément des objets (Flex permet de faire cela). Et PHP semble s'emmeler les pinceaux quand il reçoit tout le binz...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 var item:OrderItem = productImage.item; var a:Array = new Array(); a.push("productid="+item.productid, "productcode="+item.getProductcode(), "name="+item.getName(), "sex="+item.getSex(), ... (plein de données)); var i:uint = 0; for each(var o:OrderLogo in productImage.getLogos()) { a.push("logo"+i+"_scaleX="+o.scaleX); a.push("logo"+i+"_scaleY="+o.scaleY); // plein de données en plus... i++; } i=0; for each(var oo:OrderText in productImage.getTexts()) { a.push("text"+i+"_scaleX="+oo.scaleX); a.push("text"+i+"_scaleY="+oo.scaleY); // encore plein de données ici i++; } screenShots.product = a; // uploadImage est une instance de HTTPService, en mode POST uploadImage.send(screenShots); //...
Côté PHP, j'ai mis ça pour tester:
et je me retrouve avec un fichier comme cela:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $filename = 'test.txt'; if (is_writable($filename)) { if (!$handle = fopen($filename, 'r+')) { echo "Impossible d'ouvrir le fichier ($filename)"; exit; } fwrite($handle, print_r($_POST, true)); fclose($handle); }
Comme vous le voyez, la ligne en gras, qui représente le paquet d'infos envoyées du côté flex, n'affiche pas ce qu'elle devrait...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Array ( [Back] => /9j/4AAQSkZJRgABA... (données binaires) [Front] => /9j/4AAQSkZJRgABAQAA... (données binaires) [sessionid] => DABEDCC0B10BFA89DB52A97F6F645098 [product] => text0_viezoneWidthInCm=28 [Shoulder_left] => /9j/4AAQSkZJRgABAQAAA... (données binaires) [Shoulder_right] => /9j/4AAQSkZJRgABAQAAAQABA.... (données binaires) )
Quelqu'un saurait comme règler ce problème?
Partager