Page 1 sur 1

Envoi de plusieur image avec un scripts

Posté : 27 nov. 2007, 01:48
par Notilius
Je n'arrive pas a envoyer mes différentes images via mon script est ce que j(est fait une faute ou est ce qu'il me manque une boucle ?

Je tente d'envoyer 6 fichier voici mon script :
<? 
$target     = 'photo/'; 
$chemin="photo"; // Repertoire cible
$extension  = 'jpg';      // Extension du fichier sans le .
$max_size   = 1000000;     // Taille max en octets du fichier
$width_max  = 240;        // Largeur max de l'image en pixels
$height_max = 370;        // Hauteur max de l'image en pixels

//---------------------------------------------
//  DEFINITION DES VARIABLES LIEES AU FICHIER
//---------------------------------------------

$nom_file   = $_FILES['fichier']['name'];
$taille     = $_FILES['fichier']['size'];
$tmp        = $_FILES['fichier']['tmp_name'];

if(!empty($_POST['posted'])) {
  // On vérifie si le champ est rempli     
if(!empty($_FILES['fichier']['name'])) { 

        // On vérifie l'extension du fichier
        if(substr($nom_file, -3) == $extension) {
		
            // On récupère les dimensions du fichier
            $infos_img = getimagesize($_FILES['fichier']['tmp_name']);
            
            // On vérifie les dimensions et taille de l'image
            if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size)) {
                // Si c'est OK, on teste l'upload
				
                if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES['fichier']['name'])) {
				
                    // Si upload OK alors on affiche le message de réussite
                    echo '<b>Image uploadée avec succès !</b>';
                    echo '<hr />';
                    echo '<b>Fichier :</b> ', $_FILES['fichier']['name'], '<br />';
                    echo '<b>Taille :</b> ', $_FILES['fichier']['size'], ' Octets<br />';
                    echo '<b>Largeur :</b> ', $infos_img[0], ' px<br />';
                    echo '<b>Hauteur :</b> ', $infos_img[1], ' px<br />';
                    echo '<hr />';
                    echo '<br /><br />';
$chemin="photo";
$fichier=$_FILES['fichier']['name'];
// ////// test du script de modification de l'image 
// include("functions.php");
redimage("photo/$fichier","vignette/$fichier",40,62);
// //////
include("connect.php");
$nom_image="$fichier";
$id_tendance=$_POST['id_tendance'];
$sql = "SELECT * FROM image_tendance WHERE nom_image = '$nom_image'";//On sélectionne dans la table "tbl_user" le login qui a pour valeur la variable "$login" 
    $req = mysql_query($sql);  
    $result = mysql_numrows($req);// on compte le nombre de résultats 

    if($result!=0)  // le login existe déjà
        {
		print"l'image existe deja dans la base de donnée";
		}
		else
		{
$sql = "INSERT INTO image_tendance (id_image,id_tendance,nom_image)  VALUES ('','$id_tendance','$nom_image') ";	
 
   print"Veuillez patienter pendant l'enregistrement de la base de données";
   print"<br>";
   
	
// on insère les informations du formulaire dans la table
    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());
    mysql_close();  // on ferme la connexion
				
				}	?>

     <? print"$chemin/$fichier"; ?>
    <img src="<? print"$chemin/$fichier"; ?>" />
 <? print"<a href=\"index.php\"> Charge une autre image  </a>"; ?>
</fieldset>
<?	
					
                
				} else {
                    // Sinon on affiche une erreur système
                    echo '<b>Problème lors de l\'upload !</b><br /><br /><b>', $_FILES['fichier']['error'], '</b><br /><br />';
                }
            } else {
                // Sinon on affiche une erreur pour les dimensions et taille de l'image
                echo '<b>Problème dans les dimensions ou taille de l\'image ! elle doivent etre de 187px / 70px</b><br /><br />';
            }
        } 
		
		else {
            // Sinon on affiche une erreur pour l'extension
            echo '<b>Votre image ne comporte pas l\'extension .jpg !</b><br /><br />';
        
    }
	}
	 else {
        // Sinon on affiche une erreur pour le champ vide
        echo '<b>Le champ du formulaire est vide !</b><br /><br />';
    } 
	
	}
	
	?>
Merci d'avance

Posté : 27 nov. 2007, 01:50
par h0_noMan
Quel genre de fichiers essayes tu d'envoyer (les extensions) ?

Si je ne me trompes pas, il y a deja eu un sujet avec ce meme code.
Et le probleme etait un probleme d'extension.

Posté : 27 nov. 2007, 01:53
par Notilius
L'extension c du jpg

Posté : 27 nov. 2007, 01:57
par h0_noMan
Pourrais tu alors etre plus precis sur ce qui ne vas pas.

Quel est le comportement anormal ?
Quels sont les messages d'erreurs ?
Que donne tes "print" ?

Edit : DOnnes nous aussi le code du <form>

Posté : 27 nov. 2007, 02:01
par Notilius
je v essayer d'etre plus précis

j'envoi 6 fichier jpg d'un seul coup sur ce script mais il ne les traites pas les 6 donc a mon avis il manque peu etre une boucle

mais je n'est pas d'erreur de code il ne prend que la premiere image du formulaire voila voila :)

Posté : 27 nov. 2007, 03:17
par h0_noMan
Mais ceci est normal.

Ton script ne tiens compte que d'un champ.
Le <input type="file" name="fichier" /> et c'est tout.
$nom_file   = $_FILES['fichier']['name'];
$taille     = $_FILES['fichier']['size'];
$tmp        = $_FILES['fichier']['tmp_name']; 

Posté : 29 nov. 2007, 23:11
par Gofromiel
Si tu veux envoyer 6 fichiers, il faut qu'ils aient tous un "name" différent, sinon le dernier déclaré écrase les autres.

Code : Tout sélectionner

<input type="file" name="file1" ?> <input type="file" name="file2" ?> <input type="file" name="file3" ?> <input type="file" name="file4" ?> <input type="file" name="file5" ?>
Ou mieux :

Code : Tout sélectionner

<input type="file" name="file[0]" ?> <input type="file" name="file[1]" ?> <input type="file" name="file[2]" ?> <input type="file" name="file[3]" ?> <input type="file" name="file[4]" ?>

Posté : 30 nov. 2007, 15:40
par iclo
Ou plus simplement nommer tout les champs files du même nom suivit de crochets sans indice:

<input type="file" name="file[]">
<input type="file" name="file[]">
<input type="file" name="file[]">
<input type="file" name="file[]">
<input type="file" name="file[]">

Php se chargera de mettre tout seul de les indexes.