Récup données + post

cathy9999 Messages postés 68 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 10 décembre 2023 - 9 juil. 2007 à 13:05
cs_vinz78 Messages postés 207 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 24 juillet 2007 - 17 juil. 2007 à 15:24
Bonjour,
a l'aide d'une fonction javascript qui permet de créer plusieurs input file pour la récup d'images, que voici :


var num=0;
function ajout()
    {   var i=document.createElement("input");
        i.type="file";
        i.id="fic";
        i.name="fic";
     
     var d=document.createElement("div");
        d.appendChild(i);
        document.getElementById( 'divFichiers' ).appendChild(d);
 
   var b=document.createElement("input");
        b.type="button";
        b.value="inserer nom image";
     b.onclick=function() { inserer_nom(this); }
    b.width="120";
    d.appendChild(b);

        num++;
    }


j'aimerais savoir comment récupérer les images

<form id="formulaire" name="formulaire" action="exec_form.php" enctype="multipart/form-data" method="post">

[javascript:void(ajout()); Ajouter un champ]

  



j'ai fais comme cela mais cela me récupere seulement l'image du denrier input file ajouté

if(count($_FILES)>0) {
   mkdir('images/'.$sequence);
  } 




  for($num=1; $num<=count($_FILES['fic']['name']); $num++) {
   $nom_fic = $_FILES['fic']['name'];
   
   if($nom_fic!='') {
    $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); //verifie si le fichier a une bonne extension   
      if(!in_array( substr(strrchr($_FILES['fic']['name'], '.'), 1), $extensions_ok )) {
     echo "Le fichier ".$nom_fic." n'est pas un fichier au format PNG, GIF, JPG ou JPEG.";
      }
      else {
     $nom_dest = strtr($nom_fic, //enleve tout les accents
       'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
       'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
     $nom_dest = strtolower(str_replace(' ','',$nom_dest)); //enleve les espaces
     
      move_uploaded_file($_FILES['fic']['tmp_name'], "images/".$sequence."/".$nom_dest); 
    }
   }
  }
que dois je faire pour que ça les récupère tous?

9 réponses

citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 3
9 juil. 2007 à 13:26
Oui ton probleme est que tous tes champs ajoutés ce nomme : fic

il faut que tu modifie ton js qui creer les crontole pour soit en faire un tableau ou leur donner une valeur differente :

var num=0;
function ajout()
    {   var i=document.createElement("input");
        i.type="file";
        i.id="fic";
        i.name="fic".num;
     
     var d=document.createElement("div");
        d.appendChild(i);
        document.getElementById( 'divFichiers' ).appendChild(d);
 
   var b=document.createElement("input");
        b.type="button";
        b.value="inserer nom image";
     b.onclick=function() { inserer_nom(this); }
    b.width="120";
    d.appendChild(b);

        num++;
    }

quand tu valide ton form tu fait mettre le nombre de input ajouter dans uninput hidden comme ca tu aura le nombre de file.

et en php tu fait une boucle comme ca

for($i=0;$i<=$_POST['nb_file'];$i++) {

echo $_FILES['fic'.$i]['name'];

}

Citt_jr
Bats toi avec les meilleurs, crève avec le reste

http://www.tsubara.net
0
cathy9999 Messages postés 68 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 10 décembre 2023
9 juil. 2007 à 14:29
for($num=1; $num<=count($_FILES['fic_'.$num]['name']); $num++) {
move_uploaded_file($_FILES['fic_'.$num]['tmp_name'], "images/".$sequence."/".$nom_dest);
Cela ne marche pas!
0
citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 3
9 juil. 2007 à 15:00
1 - count($_FILES['fic_'.$num]['name']); ne te retourna jamais ne nombre de input file que tu avait dans ton formulaires

2- tu doit boucler sur le nombre ajouter
donc tu peut faire ca :

Javascript :
var num=0;
function ajout()
    {   var i=document.createElement("input");
        i.type="file";
        i.id="fic";
        i.name="fic".num;
     
     var d=document.createElement("div");
        d.appendChild(i);
        document.getElementById( 'divFichiers' ).appendChild(d);
 
   var b=document.createElement("input");
        b.type="button";
        b.value="inserer nom image";
     b.onclick=function() { inserer_nom(this); }
    b.width="120";
    d.appendChild(b);

// Permet de definir le nombre de file
document.getElementById('nb_file').text = num;

        num++;
    }

Html :

<form id="formulaire" name="formulaire" action="exec_form.php" enctype="multipart/form-data" method="post">

[javascript:void(ajout()); Ajouter un champ]

PHP :

for($i=0;$i<=$_POST['nb_file'];$i++) {
   echo $_FILES['fic'.$i]['name'];
}

Cela devrais déjà te donner les fichiers que tu veut uploader, si ca ne t'affiche pas les fichier pas la peine de faire un move_uploaded_file

Citt_jr
Bats toi avec les meilleurs, crève avec le reste

http://www.tsubara.net
0
cathy9999 Messages postés 68 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 10 décembre 2023
9 juil. 2007 à 15:40
Non cela ne marche pas!
je ne fais pas comme cela for($i=0;$i<=$_POST['nb_file'];$i++) { car j'utilise déja cette valeur :
if($_POST['bouton']=="Ajouter") {
if(count($_FILES)>0) {
mkdir('images/'.$sequence);
}
for($i=0; $i<=count($_FILES['fic'.$i]['name']); $i++) {
$nom_fic = $_FILES['fic'.$i]['name'];

if($nom_fic!='') {
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); if(!in_array( substr(strrchr($_FILES['fic'.$i]['name'], '.'), 1), $extensions_ok )) {
echo "Le fichier ".$nom_fic." n'est pas un fichier au format PNG, GIF, JPG ou JPEG."; }
else {
$nom_dest = strtr($nom_fic, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$nom_dest = strtolower(str_replace(' ','',$nom_dest));
move_uploaded_file($_FILES['fic'.$i]['tmp_name'], "images/".$sequence."/".$nom_dest);
}
}
}
0

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

Posez votre question
citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 3
9 juil. 2007 à 15:55
Tu utiliserai pas cette exemple par hasard ? :



http://www.graphiks.net/forum/lecture-2-976-340.html



Car la solution est dans le post !!

Citt_jr
Bats toi avec les meilleurs, crève avec le reste

http://www.tsubara.net
0
citt Messages postés 209 Date d'inscription dimanche 8 juin 2003 Statut Membre Dernière intervention 9 février 2012 3
9 juil. 2007 à 16:00
si c'est ca il te suffit de faire ca :




i.name="fic[]"

;




Citt_jr
Bats toi avec les meilleurs, crève avec le reste

http://www.tsubara.net
0
cathy9999 Messages postés 68 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 10 décembre 2023
9 juil. 2007 à 16:04
Non ce n'est pas cela !!!
je vois pas d'où viens mon souci !
0
cathy9999 Messages postés 68 Date d'inscription dimanche 6 janvier 2013 Statut Membre Dernière intervention 10 décembre 2023
11 juil. 2007 à 17:28
Trouvé !
for($num=0; $num<=count($_FILES); $num++) {
$nom_fic = $_FILES['fichier'.$num]['name'];

move_uploaded_file($_FILES['fichier'.$num]['tmp_name'], "images/".$sequence."/".$nom_dest); </code>


<code>var num=0;
function ajout() // fonction ajoutant les input file, les supprimant.
{ var i=document.createElement("input");
i.type="file";
i.id="fichier"
i.name="fichier"+num;
0
cs_vinz78 Messages postés 207 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 24 juillet 2007
17 juil. 2007 à 15:24
gg
0
Rejoignez-nous