Sauvegarder un document xml dans un fichier

5/5 (23 avis)

Vue 17 038 fois - Téléchargée 2 343 fois

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

Ajouter un commentaire Commentaires
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

Salut, la source est top et marche très très bien chez moi. Par contre j'ai le meme souci que BicTouBi. Il faut que je puisse changer "un mot" dans le fichier xml (le plat du jour d'un resto.), genre comment remplacer "Ceci est un exemple !" par le contenu d'un champ texte dans l'interface flash.
Messages postés
15
Date d'inscription
samedi 5 janvier 2008
Statut
Membre
Dernière intervention
3 septembre 2011

Bonjour,
J'ai trouvé cela très intéressant mais cela ne fonctionne pas chez moi (dossier déposé dans Apache2 htdocs en local) : si j'ouvre le fichier .fla directement et demande de tester l'animation, aucun fichier n'est créé et pas de message d'erreur. Si je cherche à ouvrir le.html avec l'adresse du serveur Apache, on me rétorque que je n'ai pas le droit de le faire. Où est-ce que j'ai fauté ?
D'avance merci pour votre aide.
Messages postés
1
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
12 juillet 2006

Bonjour,

Moi aussi je cherche une solution pour mettre a jour des données contenues dans un fichier xml. En gros j'ai un fichier xml qui contient des commentaires, des pointeurs d'images, des prix et tous cela devrait être mis à jour via un back office flash. Merci de m'éclairer si vous avez déjà fait ce genre de programme. Liaison flash - php -xml

Merci
Messages postés
5
Date d'inscription
mardi 26 octobre 2004
Statut
Membre
Dernière intervention
18 septembre 2006

bonjour j'ai besoins d'ecrir via flash dans mon fichier xml pour pouvoir mettre a jour des donne ou du texte dans un site sans passer par le serveur ftp
en gros la personne qui va gerer le site ne connais rien et il luii faus un petit soft qui permet de reactualiser son site sans galerer ...
merci
Messages postés
15
Date d'inscription
jeudi 16 décembre 2004
Statut
Membre
Dernière intervention
25 novembre 2005

Très bonne source ! 10/10
Afficher les 23 commentaires

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.