par
AB » 28 sept. 2010, 00:34
Tu as une classe d'upload toute faite ici
vos-contributions/upload-fichiers-verif ... 54129.html
En téléchargeant cette classe et en la mettant dans un fichier nommé "class_upload.php" il te suffirait de faire :
<?php require('class_upload.php');
//Liste de tes dossiers autorisés (sans caractères spéciaux ni accents, ni espaces)
$dossiers_autorise = array('Histoire','Geographie','Francais','Maths','SES');
$dossier = 'Histoire';// Indiques un dossier autorisé valide par défaut pour le bon fonctionnement de la classe
$erreur_dossier = null;
// Si ton formulaire est envoyé on regarde si $_POST['matiere'] fait partie du tableau de dossiers autorisés
if(isset($_POST['form'],$_POST['matiere']))
{
if (in_array($_POST['matiere'],$dossiers_autorise))
$dossier = $_POST['matiere'];
else
$erreur_dossier = 'Vous devez choisir la matière';
}
if (empty($erreur_dossier))
{
//Utilisation de la classe de téléchargement (cf la doc dans le lien plus haut)
$up = new Telechargement($dossier,'form','doc','get_form');
$extensions = array('pdf','txt');//Indique les extensions de fichiers autorisés
$up->Set_Extensions_accepte ($extensions);
$up->Upload('reload');
$messages = $up->Get_Tab_message ();
}
?>
<form enctype = "multipart/form-data" action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']).'?get_form=1'?>" method = "post">
<p>
Matière : <select name="matiere" >
<option value="">Choisissez...</option>
<option value="Histoire">Histoire</option>
<option value="Geographie">Géographie</option>
<option value="Francais">Français</option>
<option value="Maths">Maths</option>
<option value="SES">SES</option>
</select>
<br />
<input name = "doc" type = "file" size = "70" />
<input type = "submit" name = "form" value = "Envoyez" />
</p>
</form>
<div style="margin-top:20px;">
<?php if (!empty($messages))
foreach ($messages as $num)
{
foreach ($num as $value)
echo htmlspecialchars($value).'<br />';
}
if(isset($erreur_dossier)) echo $erreur_dossier;
?>
</div>
Bon ça c'est pour l'upload mais il faudra ajouter "un peu de code" si tu veux envoyer le nom de l'auteur dans une base de donnée...
Mais une chose en son temps, déjà essayes de faire fonctionner ce code pour l'upload dans tes dossiers spécifiques (il faut bien sûr que ces dossiers, indiqués dans les "value" des "options" et dans le tableau $dossiers_autorise, soient créés auparavant).
Tu as une classe d'upload toute faite ici http://forum.phpfrance.com/vos-contributions/upload-fichiers-verification-renommage-redimensionnement-t254129.html
En téléchargeant cette classe et en la mettant dans un fichier nommé "class_upload.php" il te suffirait de faire :
[php]<?php require('class_upload.php');
//Liste de tes dossiers autorisés (sans caractères spéciaux ni accents, ni espaces)
$dossiers_autorise = array('Histoire','Geographie','Francais','Maths','SES');
$dossier = 'Histoire';// Indiques un dossier autorisé valide par défaut pour le bon fonctionnement de la classe
$erreur_dossier = null;
// Si ton formulaire est envoyé on regarde si $_POST['matiere'] fait partie du tableau de dossiers autorisés
if(isset($_POST['form'],$_POST['matiere']))
{
if (in_array($_POST['matiere'],$dossiers_autorise))
$dossier = $_POST['matiere'];
else
$erreur_dossier = 'Vous devez choisir la matière';
}
if (empty($erreur_dossier))
{
//Utilisation de la classe de téléchargement (cf la doc dans le lien plus haut)
$up = new Telechargement($dossier,'form','doc','get_form');
$extensions = array('pdf','txt');//Indique les extensions de fichiers autorisés
$up->Set_Extensions_accepte ($extensions);
$up->Upload('reload');
$messages = $up->Get_Tab_message ();
}
?>
<form enctype = "multipart/form-data" action = "<?php echo htmlspecialchars($_SERVER['PHP_SELF']).'?get_form=1'?>" method = "post">
<p>
Matière : <select name="matiere" >
<option value="">Choisissez...</option>
<option value="Histoire">Histoire</option>
<option value="Geographie">Géographie</option>
<option value="Francais">Français</option>
<option value="Maths">Maths</option>
<option value="SES">SES</option>
</select>
<br />
<input name = "doc" type = "file" size = "70" />
<input type = "submit" name = "form" value = "Envoyez" />
</p>
</form>
<div style="margin-top:20px;">
<?php if (!empty($messages))
foreach ($messages as $num)
{
foreach ($num as $value)
echo htmlspecialchars($value).'<br />';
}
if(isset($erreur_dossier)) echo $erreur_dossier;
?>
</div>
[/php]
Bon ça c'est pour l'upload mais il faudra ajouter "un peu de code" si tu veux envoyer le nom de l'auteur dans une base de donnée...
Mais une chose en son temps, déjà essayes de faire fonctionner ce code pour l'upload dans tes dossiers spécifiques (il faut bien sûr que ces dossiers, indiqués dans les "value" des "options" et dans le tableau $dossiers_autorise, soient créés auparavant).