Recuperation infos input type file

Résolu
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 - 15 avril 2009 à 13:23
kohntark Messages postés 3705 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'

17 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
6 mai 2009 à 09:33
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 -
1
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 avril 2009 à 13:43
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 -
0
Orange73 Messages postés 1375 Date d'inscription dimanche 28 novembre 2004 Statut Membre Dernière intervention 2 août 2011
15 avril 2009 à 13:43
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)
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
15 avril 2009 à 17:26
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'
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
15 avril 2009 à 20:04
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 -
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
4 mai 2009 à 16:18
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
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
4 mai 2009 à 19:31
Peut on voir le code du formulaire ?
As tu correctement définie le enctype de la balise form ?

Kohntark -
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 mai 2009 à 09:11
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 ?
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 mai 2009 à 09:24
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'
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 mai 2009 à 09:27
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 = "";
    }
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
5 mai 2009 à 10:59
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 -
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 mai 2009 à 12:45
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 ) )
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 mai 2009 à 13:02
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.
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
5 mai 2009 à 13:12
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); ?>"
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
6 mai 2009 à 09:23
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
0
payetonju Messages postés 436 Date d'inscription mercredi 26 septembre 2007 Statut Membre Dernière intervention 2 juillet 2014 4
6 mai 2009 à 09:53
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'
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
6 mai 2009 à 10:07
Je t'en prie !!

Bonne journée à toi,

Kohntark -
0
Rejoignez-nous