Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/11/2007, 10h34   #1
Futur Membre du Club
 
Inscription : février 2006
Messages : 50
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 50
Points : 17
Points : 17
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 :
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 :
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
damaskinos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 10h52   #2
Membre éclairé
 
Avatar de alceste
 
Inscription : 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 : 320
Points : 320
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
alceste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 11h35   #3
En attente de confirmation mail
 
Inscription : juin 2002
Messages : 6 164
Détails du profil
Informations forums :
Inscription : juin 2002
Messages : 6 164
Points : 6 404
Points : 6 404
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 :
if (move_uploaded_file($_FILES['fichierXML']['tmp_name'],$destination_dir.DIRECTORY_SEPARATOR.$destination_file))
Code :
$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) ?
julp est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 16h40   #4
Futur Membre du Club
 
Inscription : février 2006
Messages : 50
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 50
Points : 17
Points : 17
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.
damaskinos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 16h58   #5
Futur Membre du Club
 
Inscription : février 2006
Messages : 50
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 50
Points : 17
Points : 17
je viens de rajouter les test suivant comme suggéré par alceste
Code :
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 :
1
2
3
 
 if (move_uploaded_file($_FILES['fichierXML']['tmp_name'],$destination_dir.DIRECTORY_SEPARATOR.$destination_file)) 
				 {
J'ai un echo qui m'affiche
Citation:
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.
damaskinos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/11/2007, 23h33   #6
Membre éclairé
 
Avatar de alceste
 
Inscription : 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 : 320
Points : 320
ç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 ^^
alceste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2007, 07h10   #7
Futur Membre du Club
 
Inscription : février 2006
Messages : 50
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 50
Points : 17
Points : 17
c'est bon il fallait le path au complet.

Merci encore
damaskinos est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h26.


 
 
 
 
Partenaires

Hébergement Web