Envois de fichier en php a des dossiers [Résolu/Fermé]

Signaler
Messages postés
103
Date d'inscription
vendredi 16 octobre 2009
Statut
Membre
Dernière intervention
23 novembre 2011
-
Messages postés
103
Date d'inscription
vendredi 16 octobre 2009
Statut
Membre
Dernière intervention
23 novembre 2011
-
Bonjour,
je souhaite envoyer des fichiers a 3 dossiers différents, j'ai nommé mes dossiers img1, img2, img3 a partie d'un formulaire avec une liste déroulante
ci l'internaute sélectionne lycee , le contenu passe au 1 er dossier (img1), s'il selection cem le contenu passe au (img2)....

voila mon code :


<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
Fichier : <input type="file" name="cours">
<input type="submit" name="envoyer" value="Envoyer le fichier">
<select>
<option value="lycee">1ere année lycée </option>
<option value="lycee">2éme année lycée</option>
<option value="lycee">3éme année lycée</option>
<option value="cem">1ere année CEM</option>
<option value="cem">2em année CEM</option>
<option value="cem">3éme année CEM</option>
<option value="cem">4éme année CEM</option>
<option value="pr">3éme année primaire</option>
<option value="pr">4éme année primaire</option>
<option value="pr">5éme année primaire</option>
<option value="pr">6éme année primaire</option>
</select>
</form>



<?php
if(isset($_FILES['cours'])) {
$dossier1 = 'img/';
$dossier2 = 'img2/';
$dossier3 = 'img3/';
$fichier = basename($_FILES['cours']['name']);
$taille_maxi = 100000;
$taille = filesize($_FILES['cours']['tmp_name']);
$extensions = array('.PNG', '.gif', '.jpg', '.jpeg', '.docx', '.txt');
$extension = strrchr($_FILES['cours']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);


if(move_uploaded_file($_FILES['cours']['tmp_name'], if (isset ($lycee)){
$dossier1 . $fichier)} else if(isset ($cem)){ $dossier2 . $fichier)}else if isset ($pr)){ $dossier3 . $fichier)}) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !'.'<br />';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
}




2 réponses

Bonsoir,

Sans aller trop loin dans ton script, ton select est mal ficelé :
<select>
<option value="lycee">1ere année lycée</option>
<option value="lycee">2éme année lycée</option>
<option value="lycee">3éme année lycée</option>

Si je sélectionne 1ere année lycée la valeur que je récupères dans le script sera égal à lycee
Si je sélectionne 2éme année lycée la valeur que je récupères dans le script sera égal à lycee
Si je sélectionne 3éme année lycée la valeur que je récupères dans le script sera égal à lycee
Tu vois où je veux en venir...?!

Autre erreur, en PHP une condition ne peut contenir un autre condition :
if(move_uploaded_file($_FILES['cours']['tmp_name'], if (isset ($lycee)){

Pour le reste je n'ai pas encore regardé mais si tu pouvais développer ta question, c'est-à-dire que dois faire ton programme et l'as-tu déjà testé?
Messages postés
103
Date d'inscription
vendredi 16 octobre 2009
Statut
Membre
Dernière intervention
23 novembre 2011

merci pour la réponse
je veux donner la main au internaute d'uploader des cours des trois sicles, et chaque sicle a son dossier, lycée, cem et primaire,
avec un seul dossier en enlevant la condition qui contient les autres condition sa marche bien, mais comme je veux segmenter en 3 dossier , j'ai du mal
<form method="POST" action="upload.php" enctype="multipart/form-data">
<!-- On limite le fichier à 100Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="100000"> 
Fichier : <input type="file" name="cours"> 
<select name="cycle">
	<option value="lycee">1ere année lycée </option>
	<option value="lycee">2éme année lycée</option>
	<option value="lycee">3éme année lycée</option>
	<option value="cem">1ere année CEM</option>
	<option value="cem">2em année CEM</option>
	<option value="cem">3éme année CEM</option>
	<option value="cem">4éme année CEM</option>
	<option value="pr">3éme année primaire</option>
	<option value="pr">4éme année primaire</option>
	<option value="pr">5éme année primaire</option>
	<option value="pr">6éme année primaire</option>
</select>
<input type="submit" name="envoyer" value="Envoyer le fichier">
</form>

<?php 
if(isset($_FILES['cours'])) {
	if(isset($_POST['cycle'])) {
		switch($_POST['cycle']) {
			case 'lycee':
				$dossier = 'img/';
			break;

			case 'cem':
				$dossier = 'img2/';
			break;

			case 'pr':
				$dossier = 'img3/';
			break;

			default:
				$erreur = 'Aucun dossier valable!';
		}
	}
	$fichier = basename($_FILES['cours']['name']);
	$taille_maxi = 100000;
	$taille = filesize($_FILES['cours']['tmp_name']);
	$extensions = array('.PNG', '.gif', '.jpg', '.jpeg', '.docx', '.txt');
	$extension = strrchr($_FILES['cours']['name'], '.');

	//Début des vérifications de sécurité...
	if(!in_array($extension, $extensions)) {
		$erreur = 'Vous devez uploader un fichier de type png, gif, jpg, jpeg, txt ou doc...';
	}
	if($taille>$taille_maxi) {
		$erreur = 'Le fichier est trop gros...';
	}
	if(!isset($erreur)) {
		//On formate le nom du fichier ici...
		$fichier = strtr($fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
		$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);

		if(move_uploaded_file($_FILES['cours']['tmp_name']), $dossier) {
			echo "Upload effectué avec succès dans le dossier $dossier !<br />";
		} else {
			echo "Echec de l'upload !";
		}
	} else {
		echo $erreur;
	}
}
?>
Messages postés
103
Date d'inscription
vendredi 16 octobre 2009
Statut
Membre
Dernière intervention
23 novembre 2011

Merci bcp, ça marche :)