Les Allergies
Alimentaires
Posez votre question Signaler

Bouton Parcourir [Résolu]

0z0z 108Messages postés 9 février 2010Date d'inscription 18 mai 2010Dernière intervention - Dernière réponse le 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.
Lire la suite 

Bouton Parcourir »

14 réponses
Réponse
+1
moins plus
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' ^^)
0z0z- 19 févr. 2010 à 15:18
Ah c'est nickel. Merci Defouille. Et Merci a Bizu53 aussi.
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,

ta variable $_POST['nomDeMaZoneDeTexte'] n'est pas vide ? vérifie ton formulaire précédent.
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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>
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
J'ai testé avec avec des id, des name et les deux à la fois mais le résultats est le même...
Ajouter un commentaire
Réponse
+0
moins plus
À 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'];
Ajouter un commentaire
Réponse
+0
moins plus
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'] ?
Ajouter un commentaire
Réponse
+0
moins plus
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.
Ajouter un commentaire
Réponse
+0
moins plus
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 ?
bizu53- 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.
0z0z- 19 févr. 2010 à 15:13
Pourtant il m'affiche toujours Can not open ...
Ajouter un commentaire
Réponse
+0
moins plus
Et non ca doit pas être ca puisque ca ne fonctionne pas ! :/
Ajouter un commentaire
Ce document intitulé « Bouton Parcourir » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?