Bouton Parcourir

Résolu/Fermé
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 - 19 févr. 2010 à 13:52
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 - 19 févr. 2010 à 15:18
Bonjour,

J'ai un site internet en php. Sur l'une de mes pages j'affiche le contenu d'un fichier csv en le parcourant. Jusque là pas de soucis. Cependant je vient de créer un bouton "parcourir" et je récupère le chemin dans une variable. C'est là que le problème survient. Il ne veut plus ouvrir mon fichier.

Avec ce code ca fonctionnait :
$file = "...\nomFichier.csv";	
$contenu = fopen ($file, "r") or die("Can not open $file");
if (!$fp = fopen($file,"r")) {
	echo "Echec de l'ouverture du fichier";
}
else {
	...


Avec celui ci ca ne fonctionne pas :
$file = $_POST['nomDeMaZoneDeTexte'];
$contenu = fopen ($file, "r") or die("Can not open $file");
if (!$fp = fopen($file,"r")) {
	echo "Echec de l'ouverture du fichier";
}
else {
	...


La seule chose qui change c'est la première ligne. Et la il m'affiche le premier message d'erreur c'est-à-dire : Can not open .
Ah et il ne m'affiche pas le $file. Même avec un
echo $file;
.

Donc si quelqu'un pouvait m'aider à résoudre ce problème ca serait super.

Merci d'avance.

11 réponses

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
19 févr. 2010 à 15:12
C'était presque ça tu as oublié un niveau du tableau :
$file = $_FILES['rfichier_csv']['tmp_name'];
$contenu = fopen ($file, "r") or die("Can not open $file");


(gaffe au "r" dans ton formulaire : 'rfichier_csv' ^^)
1
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
19 févr. 2010 à 15:18
Ah c'est nickel. Merci Defouille. Et Merci a Bizu53 aussi.
0
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
19 févr. 2010 à 14:09
Bonjour,

ta variable $_POST['nomDeMaZoneDeTexte'] n'est pas vide ? vérifie ton formulaire précédent.
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
19 févr. 2010 à 14:09
Ce n'est pas qu'il ne te l'affiche pas, c'est que $file à une longueur de 0 (ou alors est un espace, ou quelque chose dans le genre).

Affiche-le entre cote tu verras : "'".$file."'"
Par contre ça fait trop longtemps que je n'ai pas fait de récupération de fichier en php pour me souvenir de quels problèmes j'avais pu rencontrer et comment je les avais résolus.
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
19 févr. 2010 à 14:14
Et bien je crois en effet qu'elle est vide car quand je fais
echo "'".$file."'";
il m'affiche juste ' '

Alors si je comprend bien c'est juste que je n'ai pas réussi à récupérer le chemin ?

Voici le code de mon formulaire :
<form action="maPage.php" method="post" name="import_fichier_csv" enctype="multipart/form-data" />
	Sélectionnez le fichier : 
	<input type="file" name="nom_csv" /><br />
	<input type="submit" value="Importer" />
</form>
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
19 févr. 2010 à 14:31
Peut-être qu'il faudrait des id plutôt que name (ou les deux) dans tes éléments html. Je ne peux pas l'affirmer, seulement te suggérer de tester ça.
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
19 févr. 2010 à 14:36
J'ai testé avec avec des id, des name et les deux à la fois mais le résultats est le même...
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
19 févr. 2010 à 14:39
À l'époque où j'avais à faire ça j'avais trouvé pas mal de petits tuto pour ça (que j'ai la flemme de redemander à google là).
Je crois me souvenir que ce n'est pas directement qu'on accède au nom du fichier comme on le ferait pour un simple input text.
qqch du genre $_POST['nomDeMaZoneDeTexte']['filename'];
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
19 févr. 2010 à 14:52
Je regarde des tutos en même temps mais je ne vois rien qui puisse m'aider.
Qu'est ce que tu entends pas ['filename'] ?
0
Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
19 févr. 2010 à 14:58
Tes infos ne sont pas dans $_POST mais dans $_FILES car dans ton formulaire tu as un input type file.

Fait :
echo "<pre>";
print_r($_FILES);
die("</pre>");


Au début de ton fichier de traitement, tu devrais trouver ton bonheur.
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
19 févr. 2010 à 15:07
Ok la il m'affiche ceci :
Array
(
    [rfichier_csv] => Array
        (
            [name] => nomFichier.csv
            [type] => application/octet-stream
            [tmp_name] => C:\Users\saisie\AppData\Local\Temp\php\phpE597.tmp
            [error] => 0
            [size] => 14497
        )

)


Donc il récupère bien le fichier. Et si j'ai bien comprit il faut que je fasse :
$file = $_FILES['tmp_name'];
$contenu = fopen ($file, "r") or die("Can not open $file");


Est-ce bien ca ?
0
bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015 859
19 févr. 2010 à 15:10
Ah voilà mes vagues souvenirs.
Je n'ai pas de quoi tester mais c'était qqch comme ça ouais.
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5 > bizu53 Messages postés 1274 Date d'inscription samedi 30 août 2008 Statut Membre Dernière intervention 21 juin 2015
19 févr. 2010 à 15:13
Pourtant il m'affiche toujours Can not open ...
0
0z0z Messages postés 108 Date d'inscription mardi 9 février 2010 Statut Membre Dernière intervention 18 mai 2010 5
19 févr. 2010 à 15:09
Et non ca doit pas être ca puisque ca ne fonctionne pas ! :/
0