j'ai indiqué dans le script via de beaux ////// les lieux stratégiques pour moi
1/ Dans le premier cas , j'ai fait un input en hidden qui récupère la valeur $x de la boucle for qui permet d'afficher le nb de champs input file désiré , qui s'incrémente et qui me donne surtout un name égal au nom de la table ou sera stockée l'image , image_1 , image_2 etc ...
2/ Il s'agit de la zone d'affichage des fichiers , leur nom etc ... au final je voudrai les récupérer dans un input hidden avec un bouton pour injecter en base , pour cela il me faut récupérer la valeur du name="img[]"
Je réussi à afficher le tableau , mais la zone de résultat est prise dans un "foreach" et j'ai de gros pb d'affichage , si j'ai 6 images envoyées , j'ai les 6 lignes du tableau sous le nom de la premiere image , de la 2eme etc ...
Là je bloque depuis 2 jours , le pire c'est que je sens que je ne suis pas loin , mais j'y suis pas !
Donc mon but final ,
Avoir un ligne par fichier envoyé visible avec le nom de l'image envoyée , dessous en hidden un form avec 2 input , pour value , le nom de l'image , et la valeur "img[]" du form hidden que j'ai mentionné dans le paragraphe 1/
Merci déjà à ceux qui vont prendre de leur temps pour me venir en aide
Voici mon code :
<?php
function FILE_UPLOADER($file_types_array=array('jpg','gif','png','bmp','jpeg'),
$max_file_size=1048576, $upload_dir="../../upload/")
{
$num_of_uploads=$_POST['nombre'];
if(!is_numeric($max_file_size)){
$max_file_size = 1048576;
}
$max_file_size_Mo = $max_file_size/1048576;
if(!isset($_POST['submitted'])){
$form = '<center><form action="" method="post" enctype="multipart/form-data">
Telechargement de fichier:<br /><br /><input type="hidden" name="submitted" value="TRUE" id="'.time().'">
<input type="hidden" name="MAX_FILE_SIZE" value="'.$max_file_size.'">';
for($x=0;$x<$num_of_uploads;$x++){
$form .= '<input type="file" name="file[]"><font color="red">*</font><br /><br />
///////////////////////////////////////////////////////////////////////////////////////
// Mon input Hidden qui recupère la valeur $x de la boucle for
<input type="texte" name="img[]" value="image_'.($x+1).'"><br /><br />';
///////////////////////////////////////////////////////////////////////////////////////
}
$form .= '<input type="submit" value="Telecharger"><br /><font color="red">*</font>
Type(s) de fichiers autorisés: ';
$y=count($file_types_array);
for($x=0;$x<$y;$x++){
if($x<$y-1){
$form .= $file_types_array[$x].', ';
}else{
$form .= $file_types_array[$x].'.';
}
}
$form .= '</form></center>';
echo($form);
}else{
foreach($_FILES['file']['error'] as $key => $value){
if($_FILES['file']['name'][$key]!=""){
if($value==UPLOAD_ERR_OK){
$origfilename = $_FILES['file']['name'][$key];
$filename = explode('.', $_FILES['file']['name'][$key]);
$filenameext = $filename[count($filename)-1];
unset($filename[count($filename)-1]);
$filename = implode('.', $filename);
$filename = substr($filename, 0, 15).'.'.$filenameext;
$file_ext_allow = FALSE;//par mesure de securité on suppose l'extenion du fichier fausse
//verifions si notre fichier fait partie des types autorisés
if(false !== ($iClef = array_search($filenameext, $file_types_array))) {
$file_ext_allow = TRUE;
}
if($file_ext_allow){
if($_FILES['file']['size'][$key]<$max_file_size){
if(move_uploaded_file($_FILES['file']['tmp_name'][$key], $upload_dir.$filename))
{
///////////////////////////////////////////////////////////////////////////////////////
//// Voila les 2 lignes qui permettent d'afficher le nom des fichiers avec hyperlien ,
echo ('Transfert de fichier effectué avec succès.
<a href="'.$upload_dir.$filename.'" target="_blank">'.$filename.'</a><br />');
///////////////////////////////////////////////////////////////////////////////////////
/*evidemment plutot que d'afficher ici le lien vers le fichier uploader
sur le serveur vous pouvez proceder à une redirection vers une autre page*/
}else{
echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.'</strong><br />');
}
}else{
echo('La taille du fichier '.''.$origfilename.''.' excède les '.$max_file_size_Mo.' Mo autorisé(s)');
}
}else{
echo('Le fichier '.''.$origfilename.''.' a une extension invalide, ERREUR DE TRANSFERT !<br />');
}
}else{
echo('Une erreur est survenue lors du transfert de '.'<strong>'.$origfilename.'</strong>');
}
}
}
}
}
// on affiche le formulaire
echo '<FORM METHOD="post">';
// on affiche tous les champs du formulaire
echo 'Combien d\'image voulez vous uploader: <INPUT TYPE="text" name="nombre"><br />';
echo '<INPUT TYPE="submit" NAME="submit" VALUE="Envoyer">';
echo '</FORM>';
// execution de la fonction
FILE_UPLOADER();
?>