Page 1 sur 1

Problème upload

Posté : 15 juin 2011, 14:49
par Marie-Céline
Bonjour,

Voila plusieurs jours que je bloque sur un problème d'upload d'images:
Je cherche à effectuer un multi upload. Pour l'instant, j'ai créer mes onglets "parcourir" en dur (10 exactement). Mon problème j'arrive à récupérer le nom, l'extension de chaque photo mais non pas le chemin temporaire.... Le message suivant s'affiche "L'image n'a pas pu être uploadée sur le serveur"

ajout.php
print "<FORM action='ajout2.php' method='post' enctype='multipart/form-data'>";

for ($j=0; $j<=10; $j++)
{
print "<input type='hidden' name='MAX_FILE_SIZE' value='512000'>";
print "<input name='fichier[]' type='file'>";

};

ajout2.php
for ($j=0; $j<=10; $j++) 
{


	if ($_FILES['fichier']['name'][$j]!="")
	{
 
	// On vérifie le type du fichier
	$ext = pathinfo($_FILES['fichier']['name'][$j], PATHINFO_EXTENSION);
	
		if ($ext != 'png' && $ext != 'jpeg' && $ext != 'JPG' && $ext != 'jpg')
		{
		$erreur = 'Le fichier doit être au format *.jpeg ou *.png .';
		};
   
    // Si il y a une erreur on l'affiche sinon on peut uploader
	if(isset($erreur))
	{
	$msg="" . $erreur . "<br><a href=\"javascript:history.back(1)\">Retour</a>";
	}
	else
	{    
 
        $nom_fichier = "test.".$ext;
		$repertoire = 'images/'; // Repertoire d'upload
		
		
    // On upload le fichier sur le serveur.
		if (move_uploaded_file($_FILES['fichier']['tmp_name'][$j], $repertoire.$nom_fichier))
		{
		$msg="Votre image à été uploadée sur le serveur avec succes!";
		  
		}
		else
		{
        $msg="L'image n'a pas pu être uploadée sur le serveur.";
		};
     
	};

	print $msg; 
	};
};
Si quelqu'un sait comment faire, merci d'avance!!!

Re: Problème upload

Posté : 15 juin 2011, 16:11
par moogli
salut,

est ce que le répertoires images existe bien (dans le même répertoire que le fichier ajout2.php ?)
ton code est fonctionnel en dehors de ce soucis que j'ai eu ;)

je l'ai un peux modifié pour que tu ne soit pas géné par le nombre de champ input dans le formulaire (si demain tu en veux 48 ou 5 ça fonctionne toujours ;)
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <form action="" method="post" enctype="multipart/form-data">
        <?php
            for ($key=0; $key<=10; $key++)
            {
            print '<input type="hidden" name="MAX_FILE_SIZE" value="512000" />';
            print '<input name="fichier[]" type="file" /> <br />';
            };
        ?>
        <input type="submit" value="GOOOOOOOOO !!!!" name="test" />
    </form>
    </body>
</html>
<?php
if (isset ($_POST['test'])) 
foreach ($_FILES['fichier']['tmp_name'] as $key => $tmpname){
    if ($_FILES['fichier']['name'][ $key ]!=""){
        // On vérifie le type du fichier
        $ext = pathinfo($_FILES['fichier']['name'][ $key ], PATHINFO_EXTENSION);
        if ($ext != 'png' && $ext != 'jpeg' && $ext != 'JPG' && $ext != 'jpg'){
            $erreur = 'Le fichier doit être au format *.jpeg ou *.png .';
        }
        // Si il y a une erreur on l'affiche sinon on peut uploader
        if(isset($erreur)){
            $msg="" . $erreur . "<br><a href=\"javascript&#058;history.back(1)\">Retour</a>";
        }
        else{    
            $nom_fichier = 'test'.$key.'.'.$ext;
            $repertoire = 'images/'; // Repertoire d'upload
            // On upload le fichier sur le serveur.
            if (move_uploaded_file($tmpname, $repertoire.$nom_fichier)){
                $msg="Votre image à été uploadée sur le serveur avec succes!<br />";
            }
            else{
                $msg="L'image n'a pas pu être uploadée sur le serveur.<br />";
            }
        }
        print $msg;
    }
}
?>
tu devrais regarder cette classe de AB qui permet de la gestion de l'upload (multiple ou non) assez simlpement, elle permet aussi (peut être est ce ton cas au final) de redimensionner les images si on le souhaite).

@+

Re: Problème upload

Posté : 15 juin 2011, 19:30
par Marie-Céline
salut moogli, merci pour ces infos je vais en tenir compte.

J'ai résolu mon problème: mes images étaient trop lourdes et bloquée par une option dans le php.ini.
a++

Re: Problème upload

Posté : 15 juin 2011, 19:39
par Marie-Céline
Au passage, je voulais savoir si tu connaissait une fonction en javascript qui me permettrait de ajouter un champ "parcourir" autant que je voudrais ??? J'ai trouvé des bout de code en javascript sur internet mais rien ne marche et comme je n'y connais rien en javascript ??

Merci

Re: Problème upload

Posté : 16 juin 2011, 12:23
par moogli
Au passage, je voulais savoir si tu connaissait une fonction en javascript qui me permettrait de ajouter un champ "parcourir" autant que je voudrais ??? J'ai trouvé des bout de code en javascript sur internet mais rien ne marche et comme je n'y connais rien en javascript ??

Merci
regarde la classe de AB, dans le dernier message il indique qu'il a créer ce que tu souhaite.

il y a, avant un petit débat sur l'utilisation de l'option multiple sur les champs de type file en html ;)

@+