Recuperation infos input type file [Résolu]

Signaler
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
-
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
-
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'

17 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
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 -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
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 -
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

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)
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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'
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
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 -
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Peut on voir le code du formulaire ?
As tu correctement définie le enctype de la balise form ?

Kohntark -
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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 ?
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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'
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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 = "";
    }
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
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 -
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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 ) )
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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.
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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); ?>"
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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
Messages postés
436
Date d'inscription
mercredi 26 septembre 2007
Statut
Membre
Dernière intervention
2 juillet 2014
1
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'
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
25
Je t'en prie !!

Bonne journée à toi,

Kohntark -