Envois de fichier en php a des dossiers

Résolu/Fermé
goldfinch Messages postés 103 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 novembre 2011 - 3 sept. 2011 à 18:21
goldfinch Messages postés 103 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 novembre 2011 - 4 sept. 2011 à 02:00
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;
}
}




A voir également:

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é?
0
goldfinch Messages postés 103 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 novembre 2011
3 sept. 2011 à 20:24
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
0
<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;
	}
}
?>
0
goldfinch Messages postés 103 Date d'inscription vendredi 16 octobre 2009 Statut Membre Dernière intervention 23 novembre 2011
4 sept. 2011 à 02:00
Merci bcp, ça marche :)
0