IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Upload] Upload et lecture d'un fichier XML


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut [Upload] Upload et lecture d'un fichier XML
    Bonjour à tous

    J'ai une forme qui a un input de type FILE. Quand l'usagé soumet le formulaire, j'upload le fichier xml sur mon serveur. Jusque là tout va bien. Une fois le fichier sur mon serveur, j'ai besoin de le traiter. C'est la le problème. cette ligne ne marche plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $xml = simplexml_load_file($path);
    Le path est correct puisque quand je lui donne le nom d'un fichier qui est deja sur le serveur ca marche mais des que je lui donne le nom du fichier qui vient d'être uploader ca marche plus. Je met le bout de code
    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
     
    if (move_uploaded_file($_FILES['fichierXML']['tmp_name'],$destination_dir.DIRECTORY_SEPARATOR.$destination_file)) 
                     {        
     
     
     
                        $path     = 'xml/'.$_FILES['fichierXML']['name'];
                        $i        = 2;
                        $fonction = new fonction();
                        $con      = new connection("xxxxx");
                        echo $path;
                        $xml = simplexml_load_file($path);
                        var_dump($xml);
                        $cmp   = $xml->TextField1[0];
                        $lname = $xml->TextField1[1];
                        $login = $xml->TextField1[2];
                        $email = $xml->TextField1[3];
                        $pass1 = $xml->TextField1[4];
                        $phone = $xml->TextField1[5];
                        $fname = $xml->TextField1[6];
    J'ai l'impression que même quand le move_uploaded_file renvoie true cela ne veut pas dire que le fichier à fini d'être uploader. Quelqu'un aurait une idée.

    Merci d'avance

  2. #2
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    dans un premier temps, essaie comme tu l'as dis de voir s'il a bien été téléchargé avec la fonction is_uploaded_file()
    ensuite si ça ne résout rien utilise la fonction file_exists() afin de savoir si le chemin passé en argument à la fonction est correcte

    nb: mais normalement move_uploaded_file() s'assure que le fichier a bien été téléchargé, le déplace, et écrase le fichier antérieur s'il existe
    personnellement je me tournerais plus vers l'intégrité du chemin passé en argument

  3. #3
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    A priori vous n'utilisez pas les mêmes chemins (enfin on a pas les variables correspondantes sous les yeux pour l'affirmer ou l'infirmer) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (move_uploaded_file($_FILES['fichierXML']['tmp_name'],$destination_dir.DIRECTORY_SEPARATOR.$destination_file))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $path     = 'xml/'.$_FILES['fichierXML']['name'];
    Que renvoie la fonction simplexml_load_file (un objet ou FALSE/NULL) ? Avez-vous des erreurs (mais il faudrait les activer si ce n'est pas le cas sur votre environnement) ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut
    Merci pour vos reponses.

    Les fichiers xml se trouvent dans un dossier xml sur le serveur.

    donc le path est bien 'xml/le nom du fichier xml'. Je l'ai verifie ca avec un echo et il est correct. Je vais essayer ce que alceste a proposé et je vous reviens la dessus.

    Merci encore pour vos reponses.

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut
    je viens de rajouter les test suivant comme suggéré par alceste
    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
     
     
     if (move_uploaded_file($_FILES['fichierXML']['tmp_name'],$destination_dir.DIRECTORY_SEPARATOR.$destination_file)) 
    				 {		
    					echo "boucle avant is_uploaded_file";
    					if(is_uploaded_file($_FILES['fichierXML']['tmp_name']))
    					{
    							var_dump($_FILES);
    							echo "<br>File is uploaded";
    							$path     = 'xml/'.$_FILES['fichierXML']['tmp_name'];
    							echo "boucle avant file_exists ";
    							if(file_exists($path))
    							{
    								$i        = 2;
    								echo "<br>File is existe";
    								$fonction = new fonction();
    								$con      = new connection("xxxxx");
    								echo $path;
    								$xml = simplexml_load_file($path);
    								var_dump($xml);
    J'ai mis des echo un peu partout pour voir ou je bloque. Je rentre bien dans la boucle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     if (move_uploaded_file($_FILES['fichierXML']['tmp_name'],$destination_dir.DIRECTORY_SEPARATOR.$destination_file)) 
    				 {
    J'ai un echo qui m'affiche
    boucle avant is_uploaded_file
    et c'est tout. Quand je vais sur le serveur et que je regarde dans mon dossier xml, le fichier est pourtant la. Une idée.

    Merci encore.

  6. #6
    Membre averti Avatar de alceste
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2006
    Messages : 318
    Points : 356
    Points
    356
    Par défaut
    ça veut dire que le fichier est inexistant, et donc que le chemin vers le fichier passé en argument n'est pas le bon, puisque si ta condition était vérifié tu aurais une autre sortie, essaie tout de même de faire un echo en tout début de bloc de ta condition pour vérifier que ce soit pas au niveau de l'utilisation de simple xml que ça coince

    edit:je n'avais pas vu qu'il y'a déjà un echo.. enfin bref, $path n'est pas bon ^^

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Février 2006
    Messages : 54
    Points : 45
    Points
    45
    Par défaut
    c'est bon il fallait le path au complet.

    Merci encore

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Lecture d'un fichier XML de config avec Java
    Par cofy dans le forum Format d'échange (XML, JSON...)
    Réponses: 6
    Dernier message: 31/01/2006, 15h54
  2. Problème de lecture dans un fichier xml
    Par Pyra dans le forum Langage
    Réponses: 2
    Dernier message: 18/12/2005, 00h13
  3. Réponses: 3
    Dernier message: 16/11/2005, 22h00
  4. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 12h04
  5. [C#] [XML] Lecture d'un fichier XML => Combobox
    Par Chad`Chiwa dans le forum Windows Forms
    Réponses: 8
    Dernier message: 09/03/2005, 08h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo