Exercice Corrigé en Php - Exercice en langage Php corrigé :
Stocker les fichiers dans un dossier lesCv en ajoutant le nom de l’internaute au nom du fichier.
Vous n’accepterez que les fichiers au format pdf, doc, txt, rtf et docx. La taille maximum des fichiers devra être de 3 Mo.
Sur la page de réception (depot.php) un message indiquera le résultat de l’upload. (succès ou les raisons de l’échec)
Une troisième page (cvtheque.php) listera les cv obtenus. Un lien sur chaque CV permettra de les ouvrir.
Solution :
cv.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Déposez votre CV</title>
</head>
<body>
<div style="width:50%; margin:auto; border-style:solid; border-color:#006699; border-width:1px; padding:30px 0 30px 50px;">
<form action="depot.php" method="post" enctype="multipart/form-data">
<table align="center">
<tr>
<th>Votre nom :</th>
<td><input type="text" name="nom" /></td>
</tr>
<tr>
<th>Votre CV</th>
<td><input type="file" name="cv" /></td>
</tr>
<tr>
<th colspan="2"><input type="submit" value="Entrer" /></th>
</tr>
</table>
</form>
</div>
</body>
</html>
-----------------------------------------------------------------------------------
depot.php
<?php
// reception du nom
$nom = isset($_POST['nom']) ? $_POST['nom'] : '';
$accents = array(' ','_','-','À','Á','Â','Ã','Ä','Å','Ç','È','É','Ê','Ë','Ì','Í','Î','Ï','Ò','Ó','Ô','Õ','Ö','Ù','Ú','Û','Ü','Ý','à','á','â','ã','ä','å','ç','è','é','ê','ë','ì','í','î','ï','ð','ò','ó','ô','õ','ö','ù','ú','û','ü','ý','ÿ');
$sans = array('','','','A','p','A','A','A','A','C','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','Y','a','a','a','a','a','a','c','e','e','e','e','i','i','i','i','o','o','o','o','o','o','u','u','u','u','y','y');
$nom = str_replace($accents, $sans, $nom);
//liste des extensions acceptées
$validExtension = array ('pdf', 'doc', 'txt', 'rtf', 'docx');
// initialisation du message de résultat de l'upload
$flagResultat = '';
//initialisation du poids maximum
$poidsLimite = 3145728; // 1 Mo = 1048576
if(is_uploaded_file($_FILES['cv']['tmp_name'])){
if($_FILES['cv']['size']>$poidsLimite){
$flagResultat .='Fichier trop lourd.<br />';
}
$extension = strrchr($_FILES['cv']['name'], '.');
$extension = substr($extension, 1);
$extension = strtolower($extension);
if ( !in_array($extension, $validExtension) ){
$flagResultat .='Extension incorrecte.<br />';
}
if($flagResultat==''){
move_uploaded_file(
$_FILES['cv']['tmp_name'],
'lesCv/'.$nom.'_'.str_replace($accents, $sans,$_FILES['cv']['name'])
);
$flagResultat .='Fichier uplodadé correctement.<br />';
}
}else{
$flagResultat .='Aucun fichier uploadé.<br />';
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Upload de fichier</title>
</head>
<body>
<?php echo $flagResultat ?>
</body>
</html>
------------------------------------------
cvtheque.php
chdir('lesCv');
$dossier = opendir('.');
while($fichier = readdir($dossier)){
if($fichier!='.' && $fichier != '..') {$cv[] = $fichier;}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>cvtheque.php</title>
</head>
<body>
<?php
foreach($cv as $value){
$decoup = explode ('_', $value);
echo '<a href="lesCv/'.$value.'" target="cv">'.$decoup[0].'</a><br />';
}?>
</body>
</html>
--------------------------------
Exercice gratuit en php - exercice corrigé en php - apprendre langage php
0 commentaires:
Enregistrer un commentaire