Bouton Parcourir

Résolu
0z0z Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   -  
0z0z Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   - 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   Statut Membre Dernière intervention   54
 
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   Statut Membre Dernière intervention   5
 
Ah c'est nickel. Merci Defouille. Et Merci a Bizu53 aussi.
0
Defouille Messages postés 388 Date d'inscription   Statut Membre Dernière intervention   54
 
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   Statut Membre Dernière intervention   861
 
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   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention   861
 
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   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention   861
 
À 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   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention   54
 
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   Statut Membre Dernière intervention   5
 
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   Statut Membre Dernière intervention   861
 
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   Statut Membre Dernière intervention   5 > bizu53 Messages postés 1274 Date d'inscription   Statut Membre Dernière intervention  
 
Pourtant il m'affiche toujours Can not open ...
0
0z0z Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   5
 
Et non ca doit pas être ca puisque ca ne fonctionne pas ! :/
0