Sauvegarder un document xml dans un fichier

Description

Lors du développement d'applications web avec Flash, il est souvent nécessaire
de charger et de sauvegarder des variables dans un fichier, une base de données...
S'il est possible de lire des informations à partir d'une source externe directement avec ActionScript,
il en est autrement pour l'écriture. En effet, il vous faudra utiliser un script agissant côté
serveur qui s'occupe de la sous-traitance des opérations.

Dans cet exemple, nous allons voir comment sauvegarder un document XML généré avec Flash
en employant un script PHP pour la sous-traitance.
Ceci peut paraître facile au premier abord, encore faut-il avoir trouvé la solution...
Et croyez-moi, j'ai mis un certain temps avant d'obtenir quelque chose de convenable !

Ci-dessous le code ActionScript (téléchargez le ZIP pour avoir la totalité de l'exemple) :

Source / Exemple :


/* Sauvegarder un document XML dans un fichier

  • =============================================================================
  • Auteur: Dean
  • =============================================================================
  • /
// Exemple de document XML // ----------------------------------------------------------------------------- example = new XML(); example.xmlDecl = '<?xml version="1.0" encoding="UTF-8"?>'; example_root = example.createElement("exemple"); example_author = example.createElement("auteur"); example_author.appendChild(example.createTextNode("Dean")); example_description = example.createElement("description"); example_description.appendChild(example.createTextNode("Ceci est un exemple !")); example_root.appendChild(example_author); example_root.appendChild(example_description); example.appendChild(example_root); // ----------------------------------------------------------------------------- status = "Document non sauvegardé."; // Actions effectuées lors du clic sur le bouton // ----------------------------------------------------------------------------- function onClick(component){ if(component._name == "SaveXML"){ /* Créé une instance de LoadVars, la méthode send de l'objet XML étant trop limitée au niveau de la configuration */ data = new LoadVars(); // Ajoute notre document XML data["xml"] = example.toString(); // Poste la variable avec sendAndLoad response = new LoadVars(); response.onLoad = function(failure) { if(!failure) status = "Document sauvegardé avec succès !"; return failure; } data.sendAndLoad("sauvegarder_xml.php", response, "POST"); } } // -----------------------------------------------------------------------------

Conclusion :


Comme vous pouvez le voir, je n'ai pas utilisé la méthode send de l'objet XML, car celle-ci
envoie les données sous la forme de "raw-data" (comprenez sans nom de variable) et ceci
pose problème avec PHP car un changement de la configuration (php.ini) est nécessaire.
On aurait pu passer par GET et encoder le document XML dans l'URL, mais ceci est peu recommandé
et limite le volume d'informations à envoyer. LoadVars constitue donc la meilleure alternative.

Si vous testez l'exemple (attention : un serveur web équipé de PHP est requis), vous pouvez
remarquer que l'opération de sauvegarde s'effectue de manière totalement transparente, sans
affichage d'une fenêtre de navigateur. C'est aussi un point fort de cette méthode.

Je pense que j'en ai assez dit, à vous d'étudier le script. Toutes les questions et commentaires
sont les bienvenus.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.