Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1762 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  recupération d'un input type = file

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

recupération d'un input type = file

n°918786
spaceunive​rse
Posté le 09-12-2004 à 14:20:54  profilanswer
 

Voila j'ai une petite page qui permet de lire un fichier csv. Quand on clique sur le bouton envoyer il met le contenu du fichier dans une tzble de mysql. J'utilise donc une balise <input type = file name = fichier> que je récupère en faisant $_POST[fichier].
et la au lieu d'avoir un truc du genre : c:\xxxxx\xxxx\x.csv j'ai c:\\xxxxx\\xxxx\\x.csv  :ouch:  
 
Quel est le pb?

mood
Publicité
Posté le 09-12-2004 à 14:20:54  profilanswer
 

n°918793
simogeo
j'ai jamais tué de chats, ...
Posté le 09-12-2004 à 14:24:10  profilanswer
 

$_FILES['fichier']['name'];
 
http://www.toutestfacile.com/php/c [...] upload.php


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°918798
spaceunive​rse
Posté le 09-12-2004 à 14:28:44  profilanswer
 

$files stock les fichiers uploadé mais moi j'upload rien. Je veux juste récupérer le chemin que l'utilisateur a choisi pour ouvrir manuellement le fichier

n°918875
spaceunive​rse
Posté le 09-12-2004 à 15:27:05  profilanswer
 

Personne n'a de réponses? j'ai essayé quand on tape un '\' dans une zone de texte automatiquement quand on récupère la valeur il en met 2 et si on met 2 slach il en met 4.
Comment résoudre ce problème?

n°918887
ratibus
Posté le 09-12-2004 à 15:33:25  profilanswer
 

spaceuniverse a écrit :

$files stock les fichiers uploadé mais moi j'upload rien. Je veux juste récupérer le chemin que l'utilisateur a choisi pour ouvrir manuellement le fichier

Comment ça manuellement ?

n°918888
ratibus
Posté le 09-12-2004 à 15:33:59  profilanswer
 

spaceuniverse a écrit :

Personne n'a de réponses? j'ai essayé quand on tape un '\' dans une zone de texte automatiquement quand on récupère la valeur il en met 2 et si on met 2 slach il en met 4.
Comment résoudre ce problème?

C'est l'option magic_quote qui est activée (cf la doc)

n°918898
spaceunive​rse
Posté le 09-12-2004 à 15:42:00  profilanswer
 

yes ok sa marche merci :)

n°1011392
richou_
Posté le 13-03-2005 à 18:38:44  profilanswer
 

Code :
  1. <?php
  2. echo "<form enctype=\"multipart/form-date\" action=\"page3.php3?id=$id\" method=\"post\">
  3.       <input type=\"file\" name=\"fichier\"><br><br>
  4.       <input type=\"submit\"><br><br></form>";
  5. ?>


Voila le code se trouvant sur la page ou il y a le forumlaire
 

Code :
  1. <?php
  2.     $repertoireDestination = "repertoirebidon/";
  3.     $nomDestination        = $HTTP_POST_FILES["fichier"]["name"];
  4.     // Pour raison de sécurité nous ajouterons aux fichiers
  5.     // portant une extension .php .php3, l'extension .txt
  6.     if (eregi(".php", $nomDestination)) {
  7.         $nomDestination .= ".txt";
  8.     }
  9.    
  10.     if (is_uploaded_file($HTTP_POST_FILES["fichier"]["tmp_name"])) {
  11.         if (rename($HTTP_POST_FILES["fichier"]["tmp_name"],
  12.                    $repertoireDestination.$nomDestination)) {
  13.             echo "Le fichier temporaire ".$HTTP_POST_FILES["fichier"]["tmp_name"].
  14.                  " a été déplacé vers ".$repertoireDestination.$nomDestination;
  15.         } else {
  16.             echo "Le déplacement du fichier temporaire a échoué".
  17.                  " vérifiez l'existence du répertoire ".$repertoireDestination;
  18.        }         
  19.     } else {
  20.        echo "Le fichier n'a pas été uploadé (trop gros ?)";
  21.     }
  22. ?>


 
et voila le code de la page qui permet l'upload  
 
mon probleme est que je ne sais pas quelle repertoire il faut mettre a $repertoireDestination si c'est un repertoire se trouvant sur mon pc ou dans mon herbergeur comme free.
Mon but etant de faire comme dans le forum phpBB lorque dans le profile il est possible d'envoyer un avatar.
Merci de vos reponse.

n°1011448
richou_
Posté le 13-03-2005 à 19:27:36  profilanswer
 

en fait c'est bon :P

n°1011720
Xav_
The only one...
Posté le 14-03-2005 à 08:50:19  profilanswer
 

Citation :

$HTTP_POST_FILES["fichier"]["name"]


sur les versions récentes de PHP, c'est quand meme moins lourd d'utiliser $_FILES["fichier"]["name"]...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
mood
Publicité
Posté le 14-03-2005 à 08:50:19  profilanswer
 

n°1012543
richou_
Posté le 14-03-2005 à 20:45:47  profilanswer
 

oué je sais j'ai changer merci  
:)

n°1013808
Dj YeLL
$question = $to_be || !$to_be;
Posté le 15-03-2005 à 19:38:27  profilanswer
 

Tiens, ce topic me fait penser que j'ai essayé de faire la meme chose il y a quelques temps ...
 
Comment faire pour avoir un formulaire avec un bouton "parcourir", mais n'envoyer que le chemin d'acces du fichier, sans faire l'upload ...
 
Parcequ'il me semble que même si le script de l'autre côté ne fait rien pour récuperer le fichier, il est quand meme uploadé quand on clique sur valider non ?


---------------
Gamertag: CoteBlack YeLL
n°1013828
Xav_
The only one...
Posté le 15-03-2005 à 20:05:33  profilanswer
 

oui il est uploader dans un rép temporaire du serveur, meme si tu n'en récupère que le chemin par la suite...


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1014145
Dj YeLL
$question = $to_be || !$to_be;
Posté le 16-03-2005 à 08:26:43  profilanswer
 

Et il n'y a pas moyen de faire autrement ?
 
J'ai pensé faire un script JS qui, lorsqu'on valide le formulaire, copie le champ fichier vers un champ texte normal et efface le champ du fichier ... Mais bon, si qqn désactive JS ... ça ne marchera plus ... et bonjour la surcharge des serveurs si qqn upload un fichier de 600 Mo ... tout ça pour en récuperer le chemind d'accès :)
 
Merci.


---------------
Gamertag: CoteBlack YeLL
n°1014238
Xav_
The only one...
Posté le 16-03-2005 à 10:21:32  profilanswer
 

en meme temps c'est un peu bizarre de vouloir juste récupérer le nom du fichier... vu que tu l'a pas sur le serveur, tu peux pas permettre aux autres de le downloader... si le mec le supprime ou le déplace sur sa machine, l'adresse que tu as stockée est mauvaise et t'a aucun moyen de le savoir et de mettre à jour... :(
 
J'ai du mal à comprendre l'utilité....


Message édité par Xav_ le 16-03-2005 à 10:22:18

---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1014268
Dj YeLL
$question = $to_be || !$to_be;
Posté le 16-03-2005 à 10:40:03  profilanswer
 

C'est pour de l'intranet avec des fichiers sur le réseau ;)


---------------
Gamertag: CoteBlack YeLL
n°1014323
Xav_
The only one...
Posté le 16-03-2005 à 11:22:36  profilanswer
 

alors tu fait direct un input de type "text" dans lequel le mec copie/colle le chemin du fichier... si tu n'a besoin que d'une adresse et non d'un fichier, "file" n'est pas pour toi ;)


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1014373
Dj YeLL
$question = $to_be || !$to_be;
Posté le 16-03-2005 à 12:02:12  profilanswer
 

Je sais bien, mais le problème c'est que les chemins d'accès sont parfois très long \\serveur\dossier\un nom de dossier avec mots clés\encore un nom de sous dossier\encore un dossier qui montre a quel point les serveurs sont mal organisé\et enfin le fichier avec 250 mots dans le nom\
 
Enfin voilà quoi :/


---------------
Gamertag: CoteBlack YeLL
n°1014378
Xav_
The only one...
Posté le 16-03-2005 à 12:04:07  profilanswer
 

clic droit sur le fichier, "propriété", et là tu sélectionne toute la ligne de 1Km dans le champs URL, et après "copier" et "coller" dans le champs du formulaire...
sorry j'ai pas trop le temps de faire les captures d'image pour illustrer :P


---------------
- Xav - ...There are no crimes when there are no laws... -- Xav's World
n°1014431
Dj YeLL
$question = $to_be || !$to_be;
Posté le 16-03-2005 à 13:07:00  profilanswer
 

Je connais merci :D :lol:
 
Mais bon, ça oblige à de toute façon aller chercher le fichier là où il est, clic droit dessus, copier le chemin d'acces ... mais là déjà le nom du fichier n'est pas inclus, donc "Coller" le chemin d'acces, copier le nom du fichier, et coller le nom du fichier à la suite ...
 
Enfin bref, de toute façon je me demandais juste si c'etait possible :D ;)
 
Merci en tout cas :)
 
++


---------------
Gamertag: CoteBlack YeLL
n°1841621
bahamut100
Posté le 22-01-2009 à 14:26:15  profilanswer
 

ratibus a écrit :

C'est l'option magic_quote qui est activée (cf la doc)


 
bonjour à tous,  
pour ma part j'ai bien mis magic_quotes_gpc = Off
mais mon problème persiste toujours, lorsque je charge un fichier, je devrais avoir F:\maj\Professeurs.csv
au lieu de ca je me retrouve avec F:\\maj\\Professeurs.csv
 
Merci de votre aide, ca fait 2 jours que j'essaie de convertir avec str_replace et d'autres méthodes mais rien ne march  :sweat:  

n°1841674
FlorentG
Posté le 22-01-2009 à 15:55:44  profilanswer
 

De toute manière, je crois que Firefox n'envoi pas le chemin complet; juste le nom du fichier.
 
Ensuite si str_replace ne fonctionne pas, c'est que t'as un problème ailleurs. Poste du code pour voir.

n°1841906
bahamut100
Posté le 23-01-2009 à 09:42:25  profilanswer
 

alors, voici mon formulaire de chargement :  
charger.php

Code :
  1. <form action = 'chargementEleve.php' method = 'POST' name = 'selection'>
  2. <input type='file' maxlength='20' size='20' name = 'fichier' >
  3. <input type = 'submit' name = 'BoutonValider' value = 'Charger' >
  4. </form>


 
et la voici ma page qui affiche le résultat :
chargement.php

Code :
  1. <?php
  2. $fichier = $_POST['fichier'];
  3. echo $fichier;
  4. ?>


Message édité par bahamut100 le 23-01-2009 à 09:43:34
n°1841916
FlorentG
Posté le 23-01-2009 à 10:01:40  profilanswer
 

Pourquoi y'a-t-il des espaces entre les attributs, les = et les valeurs ? [:pingouino]

n°1841923
bahamut100
Posté le 23-01-2009 à 10:23:37  profilanswer
 

ca revient au même, j'ai toujours eu l'habitude de faire comme ca pour aérer le code

n°1841940
omega2
Posté le 23-01-2009 à 11:10:03  profilanswer
 

"<input type='file' "
"$fichier = $_POST["
 
Et un piège pour la huit, un. ;)
 
En php, quand on utilise un input de type fichier, on ne récupère pas les données du ou des fichiers dans $_POST mais dans $_FILES.
Voir ici pour plus de détail

n°1841941
FlorentG
Posté le 23-01-2009 à 11:16:17  profilanswer
 

Et on n'oublie pas un enctype multipart/form-data

n°1841942
Alisteroid
Posté le 23-01-2009 à 11:17:20  profilanswer
 

bahamut100 il manque enctype="multipart/form-data" dans la balise form
 
 [:grilled]


Message édité par Alisteroid le 23-01-2009 à 11:17:41
n°1841953
bahamut100
Posté le 23-01-2009 à 12:06:14  profilanswer
 

merci de votre aide.
 
Mais en fait ce que je voudrais, ce n'est pas charger un fichier, c'est le lire (avec explode()) et récupérer les données pour pouvoir les insérer dans une base mySql

n°1841954
Alisteroid
Posté le 23-01-2009 à 12:09:34  profilanswer
 

:heink:  
LA seule façon de le faire c'est celle qu'on te donne

n°1841966
FlorentG
Posté le 23-01-2009 à 12:39:24  profilanswer
 

Il faut obligatoirement uploader le fichier. Sinon trop de bordel (déjà la compatibilité navigateurs, FireFox n'envoit pas le chemin complet)

n°1842068
bahamut100
Posté le 23-01-2009 à 15:22:51  profilanswer
 

une fois que le fichier est uploadé, comment le lire ?

n°1842071
FlorentG
Posté le 23-01-2009 à 15:23:33  profilanswer
 

On vient de te le dire [:sadnoir] Via $_FILES

n°1842120
bahamut100
Posté le 23-01-2009 à 15:56:04  profilanswer
 

j'ai bien compris ca, c'est fait et ca fonctionne, mais comme je l'ai dit plus haut, je dois parcourir ce fichier sans le lire, et je n'ai pas vu de propriétés de $_FILES qui permettaient cela. Je me fait comprendre ?

n°1842128
omega2
Posté le 23-01-2009 à 15:58:50  profilanswer
 

Hum ... tu t'y prendrais comment pour traverser un pays sans sortir de chez toi?
Là, c'est pareil. parcourir le contenu d'un fichier sans lire le contenu d'un fichier, c'est, comment dire, ... absurde comme idée.

n°1842235
Alisteroid
Posté le 23-01-2009 à 18:20:14  profilanswer
 

[:ddr555] il veut juste lire un bouquin sans l'ouvrir  [:ddr555]

 

Bonjour, je veux cliquer sur un bouton et faire deux redirection en uploadant un fichier que je veux parcourir sans le lire, le tout avec une musique de fond et protégé par un mot de passe en javascript.
Vous pouvez me le faire?


Message édité par Alisteroid le 23-01-2009 à 18:24:01
n°1842547
bahamut100
Posté le 24-01-2009 à 17:08:39  profilanswer
 

je l'ai deja fait avec la méthode explode() et ca fonctionnait tres bien.
je récupérais le fichier .csv
je faisais :  

Code :
  1. $fichier = $_POST['fichier'];
  2. if (file_exists($fichier))
  3.      {$fp = fopen("$fichier", "r" );
  4.       while (!feof($fp))
  5.       { /* Tant qu'on n'atteint pas la fin du fichier */
  6.        $ligne = fgets($fp,4096); /* On lit une ligne */ 
  7.        /* On récupère les champs séparés par ; dans liste*/
  8.        $liste = explode( ";",$ligne);
  9.        echo $liste[0];
  10.  }


Message édité par bahamut100 le 24-01-2009 à 18:22:57
n°1842894
FlorentG
Posté le 25-01-2009 à 22:05:24  profilanswer
 

Hmmm et si y'a un point-virgule dans une valeur ? C'est toujours une mauvaise idée de parser les CSV à la main, y'a des tonnes de libs qui savent faire ça très bien...

n°1842954
bahamut100
Posté le 26-01-2009 à 09:17:24  profilanswer
 

merci de me mettre sur la piste, mais tu peux m'en, dire plus ?
(pour le fichier CSV, c'est un logiciel de l'éducation qui exporte une liste d'élève en fichier csv)

n°1842956
FlorentG
Posté le 26-01-2009 à 09:28:16  profilanswer
 

Genre via fgetcsv

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  recupération d'un input type = file

 

Sujets relatifs
[PostgreSql] Index et typetouche [TAB] qui boucle uniquement sur input + accessibilite
Problème de récupération de type MIMEErreur "Type de données incompatible dans l'expression du ..."[RESOLU]
erreur compilation gcc parse error at the end of inputType de données avec Access2000
[jsp]problème à la compilation : class file contains wrong classrecupération certificat numérique en php
police true type 
Plus de sujets relatifs à : recupération d'un input type = file


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR