Problème d'upload

Résolu/Fermé
JuJuCe Messages postés 13 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 23 juin 2013 - 20 oct. 2011 à 13:27
 le père - 20 oct. 2011 à 14:25
Bonjour,

Je rencontre un problème avec mon upload

J'ai sur mon site une page d'ajout de photo pour une gallerie photo cette page fonctionne correctement l'upload d'image est ok.

J'ai egalement une page pour ajouter un evenement type concert, dans laquel je peux ajouter l'image d'une affiche par exemple pour ce faire j'utilise le même script d'upload que pour la gallerie sauf qu'il me dit que je n'ai pas séléctionné de fichier.

Lorsque je fait un print_r de $_FILES['file'] j'ai le resultat array () nul.

Pouvez vous m'aider à trouver d'ou viens le problème ?

Voici ci dessous le script d'upload de ma page ajoutevenement.php:





// ############################################################ //
// Définition des variable globales, modifiables à volonté            //
// ############################################################ //
// Récupération du dossier dans lequel le fichier sera uploadé  //
$DESTINATION_FOLDER = "C:\\wamp\www\Site Les chaussettes sauvages\Pages\Medias\Images\\";  // Mettre le chemin de votre repertoire conseil plustot directe sur la racine de votre site car il faut les permissions chmod 777
// Taille maximale de fichier, valeur en bytes          //
$MAX_SIZE = 1000000000;                                  //  Indiquer la taille maxi de base la valeure indique 10Ko
/////////////////////////////////////////////////////////////////////////////////////////
// Récupération de l'url de retour//NE PAS MODIFIER CETTE VARIABLE                    //
$RETURN_LINK = "index_admin.php?page=AjoutImage";// fichier de retour quand une     //
//                                   						erreure de téléchargement//
//                                    						(uploader) se produit    //
///////////////////////////////////////////////////////////////////////////////////////
// Définition des extensions de fichier autorisées (avec le ".")  //
$AUTH_EXT = array(".jpg", ".JPG", ".png", ".PNG", ".jpeg", ".JPEG");//
//d'autre extensions sont possible         //
//**************************************************************************************************///
// Fonction permettant de créer un lien de retour automatique   //

function createReturnLink(){
        global $RETURN_LINK;
        echo "<a href='".$RETURN_LINK."'>Choisir un autre fichier</a><br>";
}

// Fonction permettant de vérifier si l'extension du fichier est
// autorisée.

function isExtAuthorized($ext){
        global $AUTH_EXT;
        if(in_array($ext, $AUTH_EXT)){
                return true;
        }else{
                return false;
        }
}

// On vérifie que le champs contenant le chemin du fichier soit
// bien rempli.

if(!empty($_FILES["file"]["name"])){
       
        // Nom du fichier choisi:
        $nomFichier = $_FILES["file"]["name"] ;
        // Nom temporaire sur le serveur:
        $nomTemporaire = $_FILES["file"]["tmp_name"] ;
        // Type du fichier choisi:
        $typeFichier = $_FILES["file"]["type"] ;
        // Poids en octets du fichier choisit:
        $poidsFichier = $_FILES["file"]["size"] ;
        // Code de l'erreur si jamais il y en a une:
        $codeErreur = $_FILES["file"]["error"] ;
        // Extension du fichier
        $extension = strrchr($nomFichier, ".");
        $nom_destination_fichier=$_FILES["file"]["name"];
       
        // Si le poids du fichier est de 0 bytes, le fichier est
        // invalide (ou le chemin incorrect) => message d'erreur
        // sinon, le script continue.
        if($poidsFichier <> 0){
                // Si la taille du fichier est supérieure à la taille
                // maximum spécifiée => message d'erreur
                if($poidsFichier < $MAX_SIZE){
                        // On teste ensuite si le fichier a une extension autorisée
                        if(isExtAuthorized($extension)){
                                // Ensuite, on copie le fichier uploadé ou bon nous semble.
                                $uploadOk = move_uploaded_file($nomTemporaire, $DESTINATION_FOLDER.$nom_destination_fichier);
                                if($uploadOk){
                                     $var_erreure="04";
									 
									 echo 'Fichier uploadé';
									 			 
										 
										 echo(createReturnLink()."<br>");
                                }else{
                                    $var_erreure="05";
                                        echo("L'upload de votre fichier(de son nouveau nom): " ); echo $nom_destination_fichier; echo (" a échoué !<br><br>");
                                        echo(createReturnLink()."<br>");
                                }
                        }else{
                            $var_erreure="05";
                                echo ("Les fichiers avec l'extension $extension ne peuvent pas être uploadés !<br>");
                                echo (createReturnLink()."<br>");
                                }
                }else{
                    $var_erreure="05";
                        $tailleKo = $MAX_SIZE / 1000000000;
                        echo("Vous ne pouvez pas uploader de fichiers dont la taille est supérieure à : $tailleKo Ko.<br>");
                        echo (createReturnLink()."<br>");
                }              
        }else{
            $var_erreure="05";
                echo("Le fichier choisi est invalide !<br>");echo $nomFichier ;
				echo $_FILES['file']['error'];
                echo (createReturnLink()."<br>");
        }
}else{
    $var_erreure="05";
        echo("Vous n'avez pas choisi de fichier !<br>"); 
        echo (createReturnLink()."<br>");
}

 



Et ci dessous mon formulaire html:


<div id="form" align="center">

<form method="post" id="editeur" action="ajoutevenement.php">
 <?php  echo @$_SESSION['Login_Admin']; ?>
	
	<label for="file"> Ajoutez une image ou une affiche pour votre évènement: </label><br>
     <!-- On limite le fichier à 1Go -->
     
     <input type="file" name="file"><br><br>


	<label for="titre"><p><h4>Titre de votre évènement:</h4></p></label> 
	<input type="titre" name="titre"/>
	
	<br />
		<label for="message"><p><h4>Description de votre évènement: </h4></p></label>
	<textarea id="elm1" name="message" rows="10" cols="30" style="width: 80%" >
		
	</textarea><br>
	
	<label for="Date"><p><h4> Date de l'évènement: </h4> </p></label>
	<input type="titre" name="Date"><br><br>

	<label for="lieu"><p><h4> Lieu de votre évènement (exemple: Le London Pub, Salle des fêtes...):</h4> </p></label>
	<input type="titre" name="lieu"><br><br>
	
	<label for="codepostal"><p><h4> Code Postal:</h4> </p></label>
	<input type="titre" name="codepostal"><br><br>
	
	<label for="ville"><p> <h4>Ville:</h4> </p></label>
	<input type="titre" name="ville"><br><br>
	
	<label for="prix"><p> <h4>Prix:</h4> </p></label>
	<input type="titre" name="prix"> €<br>
	
	
	<br />
	<input type="submit" name="save" value="Valider" />
	<input type="reset" name="reset" value="Reinitialiser" />
	

	</form>

 



Je confirme bien que le même script d'upload fonctionne pour un upload d'image simplement pour une gallerie photo mais que pour l'evenement cela ne marche pas.

Merci d'avance de votre aide

1 réponse

Bonjour

Il te manque le "enctype" dans ta balise <form> :
<form method="post" id="editeur" action="ajoutevenement.php" enctype="multipart/form-data" >
1
JuJuCe Messages postés 13 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 23 juin 2013
20 oct. 2011 à 14:20
C'était bien mon problème Merci Le père ;)
0
Je confirme bien que le même script d'upload fonctionne pour un upload d'image
Heureusement que je ne t'ai pas cru... ^^
0