Bonjour à tous,
je travaille sur un projet (AS3) online qui nécessite notamment 2 choses :
- générer un fichier PDF dynamiquement depuis le swf, à partir de données saisies par l'utilisateur. Pour cela, j'utilise AlivePDF, qui fonctionne à merveille.
- uploader ce PDF dans un dossier de mon serveur (et c'est là que les choses se gâtent...)
J'ai pas mal fouillé, j'ai trouvé de nombreuses sources mais toutes traitent de l'upload de fichiers "local" vers "distant". Jamais de fichiers générés en live depuis le swf.
Je me doute qu'il va falloir combiner as3 + php, mais j'avoue avoir énormément de mal à faire le tri dans tout ça afin de récupérer ce qui pourrait m'intéresser.
Voici ce que j'ai fait pour l'instant, mais qui ne fonctionne pas...
Côté AS3 :
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 //on génère un PDF : var myPDF:PDF = new PDF ( Orientation.PORTRAIT, Unit.MM, Size.A4 ); myPDF.addPage(); //je remplis ensuite mon PDF, ce n'est pas très intéressant... //On uploade le fichier PDF sur le serveur : var scriptRequestUpload:URLRequest = new URLRequest("uploadBonCommande.php"); var scriptUpload:URLLoader = new URLLoader(); var scriptVarsUpload:URLVariables = new URLVariables(); //mes écouteurs : scriptUpload.addEventListener(Event.COMPLETE, handleLoadUploadSuccessful); scriptUpload.addEventListener(IOErrorEvent.IO_ERROR, handleLoadUploadError); scriptVarsUpload.PDF_name = "BonDeCommande.pdf"; //je stocke ans une première variable le nom de mon PDF scriptVarsUpload.PDF = myPDF; // et dans une seconde mon fichier en lui-même. (je pense que mon erreur vient de là puisque je ne pense pas que l'on puisse passer en variable POST un fichier scriptRequestUpload.method = URLRequestMethod.POST; scriptRequestUpload.data = scriptVarsUpload; scriptUpload.load(scriptRequestUpload);
coté PHP, voici le contenu de mon fichier uploadBonCommande.php :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 <?php $path = "Commandes/".$_FILES['PDF']['name'] ; //je créé un fichier dans lequel je copie le contenu de mon fichier PDF $fichier = fopen($path,"w"); fwrite($fichier,$_FILES['PDF']['name']); fclose($fichier); ?>
J'ai essayé avec la méthode SAVE de la classe AlivePDF, qui fonctionne bien :
Le problème est que pour exécuter ce script, il demande à firefox l'autorisation d'ouvrir un pop-up, et exécute le script dans une nouvelle page blanche (style _blank)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 myPDF.save( Method.REMOTE, "uploadBonCommande.php", null, namePDF);
J'aimerai que l'exécution de ce script se fasse de manière totalement transparente pour ne gêner en rien l'internaute dans sa navigation.
Auriez-vous des idées pour résoudre ce problème ?
Je vous remercie d'avance.
Paradeyes
Partager