Recuperation infos input type file [Résolu]

Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
- - Dernière réponse : kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
- 6 mai 2009 à 10:07
Bonjour,

Je voudrais savoir comment on fait pour récupérer les infos d'un INPUT de type FILE

Pour nimporte quel autre input "normal" il suffit de faire un $_POST['moninput'] et ça récupère la valeur du champs.
Mais je n'ai jamais utilisé l'input file et je ne sais pas comment récupérer sa valeur.
Je précise que la valeur que je voudrais récupérer est le chemin complet d'une image séléctionnée par cet input file.

Merci beaucoup d'avance.

Ju'
Afficher la suite 

17 réponses

Meilleure réponse
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
3
Merci
Donner une valeur au value d'un champ de type file ? => impossible, et heureusement, tu imagine bien les pbs de sécurité que ça posserait.

Cordialement,

Kohntark -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Salut,

Faudrait peut être pas abuser hein, une simple recherche de "récupérer input type file" donne plus de 32 000 résultats dans google. Le second donne la solution.
En tout compte 60 secondes de recherche pour avoir cette réponse.

Kohntark -
Commenter la réponse de kohntark
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011
0
Merci
Hello,

Une petite recherche : http://www.w3schools.com/PHP/php_file_upload.asp

-- Orange73 --
"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Commenter la réponse de Orange73
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
Merci orange73, mais le hic c'est que en anglais je ne suis pas un dieu lol. Donc pour lire les commentaiers c'est un peu juste.

Et merci de ta remarque Kohntark, mais si je viens ici c'est parce que les réponses que j'ai trouvées précédemment ne m'ont pas satisfaites, je n'y ai pas compris grand chose. Je sais juste que au lieu d'utiliser un $_POST que j'utilise dans les champs INPUT type=texte, j'utilise $_FILE pour ce genre d'input, mais je n'ai pas vraiment compris comment s'en servir. D'où ma question ;o)

après ça dépend de ce que tu utilises comme mots clés. Moi perso j'avais mis des trucs du genre "recuperation valeur champs parcourir html" et ça ne me donnais pas ce que je voulais. Donc non je n'abuses pas j'essaye de bosser en comprenant ce que je fais, dans mon contexte.

Voilou  |=OD

@+

Ju'
Commenter la réponse de payetonju
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
OK, au temps pour moi, le principal est que ce ne soit pas de la mauvaise volonté (très très fréquente ici)

Ceci étant tu ne m'ôteras pas de l'idée qu'en cherchant on trouve très facilement ce genre d'information.

Ce lien devrait être bien plus efficace qu'un long discours :
http://fr2.php.net/manual/fr/features.file-upload.php

N'hésite pas à poster tes interrogations.

Kohntark -
Commenter la réponse de kohntark
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
Bonjour,

Ok kohntark je comprends il n'y a aucun problème ;)

Après certains vains essais, je n'y arrive pas à récupérer l'image que je veux grâce à l'input FILE.

Mon input c'est :

Quand j'ajoute dans la base c'est : $lien_img_mod = trim($_FILES['lien_img_mod']['name']);

      ConnexionBase($connect);
      $sql ="Insert into caracteristiques_produits (LIEN_IMG) Values ('$lien_img_mod')";
      $res=ODBC_exec($connect,$sql);
      DeconnexionBase($connect);

Quand je met un POST et un input normal ça marche, mais là ça ne marche pas. Quelqu'un peut-il m'aider SVP ?
Merci
Commenter la réponse de payetonju
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Peut on voir le code du formulaire ?
As tu correctement définie le enctype de la balise form ?

Kohntark -
Commenter la réponse de kohntark
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
voici le formulaire :

<FORM NAME='form1' METHOD='post' ACTION='bureautiqueESSAI.php'>

Ha... et efectivement je n'ai pas de enctype...
Il faut que je mette      enctype="multipart/form-data"       c'est ça ?
Commenter la réponse de payetonju
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
je viens d'essayer avec ceci et rien n'y change... :/

Voici le petit bout de mon code qui enregistre des caractéristiques d'un produit dans une base à l'aide du bouton "ajout"

<code>

if(isset($_POST['ajout']))
{
  $message_1 = "[AJOUT]";





  if(isset($_POST['reference_ajout']))
  {
    $reference_ajout = trim($_POST['reference_ajout']);
    $designation_mod= trim($_POST['designation_mod']);
    $descriptif_mod = trim($_POST['descriptif_mod']);
    $lien_img_mod = trim($_FILES['lien_img_mod']['name']);
    
    ConnexionBaseCARRI($connect);
    $sql="select CODEPRODUIT from produits where CODEPRODUIT = '".$reference_ajout."' ";
    $res=ODBC_exec($connect,$sql);
    $reference_test = trim(ODBC_result($res,"CODEPRODUIT"));
    ODBC_close($connect);







    if($reference_test==$reference_ajout) 
    {
        $message_2 = "Produit ".$reference_ajout." EXISTE DEJA";
    }
    else
    {
      ConnexionBaseCARRI($connect);
      $sql ="Insert into caracteristiques_produits(CODEPRODUIT,DESIGNATION,DESCRIPTIF,LIEN_IMG) Values ('$reference_ajout','$designation_mod',";
      $sql.= "'$descriptif_mod','$lien_mod','$alt_img_mod','$nb_processeur_mod','$nb_video_mod','$nb_hdd_mod','$lien_img_pres_mod')";
      $rs=ODBC_exec($connect,$sql);
      ODBC_close($connect);







      $message_2 = "Produit ".$reference_ajout." ajouté correctement dans la base";
     
      $reference_mod = "";
      $designation_mod = "";
      $descriptif_mod= "Ajoutez ici un descriptif de présentation du produit";
      $lien_img_mod = "";
    }
  }
}
</code>





Voilà ! J'espere que ça pourra vous aider à m'aider (lol)

MErci

Ju'
Commenter la réponse de payetonju
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
Oups, j'ai fait une petit ereur au niveau de mon else quand j'ai fais mon copié collé :

MODIF :
    else
    {
        ConnexionBaseCARRI($connect);
        $sql = "Insert into caracteristiques_produits(CODEPRODUIT,DESIGNATION,DESCRIPTIF,LIEN_IMG) Values ";
        $sql.= "('$reference_ajout','$designation_mod','$descriptif_mod','$lien_mod')";
        $rs =ODBC_exec($connect,$sql);
        ODBC_close($connect);




        $message_2 = "Produit ".$reference_ajout." ajouté correctement dans la base";
    
        $reference_mod = "";
        $designation_mod = "";
        $descriptif_mod= "Ajoutez ici un descriptif de présentation du produit";
        $lien_img_mod = "";
    }
Commenter la réponse de payetonju
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Grrrrr .... et le code du formulaire, où est il ??

Décomposes les choses, c'est la meilleure solution.
Ajoute :
print_r($_FILES);
exit;
au tout début du bout de code qui enregistre des car .... Quel est le résultat à l'affichage ?

Cordialement,

Kohntark -
Commenter la réponse de kohntark
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
Mon formulaire est :
<form name="modification" method="post" action="gestion_base_interne.php" ENCTYPE="multipart/form-data" >

quand je fait le print_r ça me donne ceci :

Array ( [lien_img_pres_mod] => Array ( [name] => favicon.jpg [type] => image/pjpeg [tmp_name] => C:\Programmes\wampserver2.0c\tmp\php951.tmp [error] => 0 [size] => 1375 ) [lien_img_mod] => Array ( [name] => [type] => [tmp_name] => [error] => 4 [size] => 0 ) )
Commenter la réponse de payetonju
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
haaaa je viens de regarder ma base de données et les données on bien été envoyées, j'ai "favicon.jpg" dans ma base de données :)
En fait je viens de me rendre compte que mon problème est quand je veux afficher ces champs là.. bah au moins je sais que le problème n'est pas à l'enregistrement.

Voici mon code pour visionner ce qu'il y a dans la base :

if(isset($_POST['actualiser']))
{
  $message_1 = "[ACTUALISER]";




  if(isset($_POST['reference_mod']))
  {
    $reference_mod = $_POST['reference_mod'];
    ConnexionBase($connect);
    $sql="select CODEPRODUIT,DESCRIPTIF,LIEN_IMG_PRES from caracteristiques_produits WHERE CODEPRODUIT='".$reference_mod."'";
    $res=ODBC_exec($connect,$sql);
    $descriptif_mod= ODBC_result($res,"DESCRIPTIF");
    $lien_img_mod = ODBC_result($res,"LIEN_IMG");
    DeconnexionBase($connect);
  }
}


 Mes inputs :




<textarea name="descriptif_mod" cols="50" rows="5" id="descriptif_mod"tabindex="18"><?php echo htmlentities($descriptif_mod); ?></textarea>


Je ne vois pas ce qui bloque puisqu'avec tou les autres champs ça marche... :/

Merci.
Commenter la réponse de payetonju
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
Excusez ma maladresse, dans ma requete ce n'est pas LIEN_IMG_PRES mais LIEN_PRES... petite erreur de copié/collé

Et j'ai modifié l'input FILE de la maniere suivante mais rien n'a changé je ne vois rien d'afficher dans ce champs là, j'ai rajouté l'attribut VALUE
value="<?php echo htmlentities($lien_img_pres_mod); ?>"
Commenter la réponse de payetonju
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
je viens de relire mes posts et il faut vraiment que je me concentre d'avantage avec mes erreurs lol... ce n'est pas LIEN_PRES mais LIEN_IMG
et pour la value c'est value="<?php echo htmlentities($lien_img_mod); ?>"
Voilà. C'est juste pour éviter qu'on me fasse la remarque lol, ça fait gagner de la place.

Mais concernant mon probleme je n'ai toujours pas résolu, mais en attendant j'ai affiché le resultat de la BDD dans un TR juste un dessus de l'input FILE, qui s'affiche que s'il y a un resultat. Donc pour une solution de secours c'est pas trop mal mais je préférerais afficher directement le resultat dans l'input FILE meme ! est-ce possible au moins ?

Merci
Commenter la réponse de payetonju
Messages postés
437
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
0
Merci
Bon et bien j'ai toutes mes réponses alors? Je vais tâcher d'améliorer ma solution de secours afin que cela devienne ma vraie solution lol.

Je te remercie pour tes réponses ça m'a bien débloqué !

Bonne journée

Ju'
Commenter la réponse de payetonju
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
0
Merci
Je t'en prie !!

Bonne journée à toi,

Kohntark -
Commenter la réponse de kohntark