Invité
Invité n'ayant pas de compte PHPfrance
04 mai 2006, 18:33
Bien non, ça fonctionne avec tous les types de fichiers, je viens d'essayer :
Il faut un répertoire
upload au même endroit de que le script php.
<?php
if( isset($_POST['envoi']) )
{
// Vérification de l'image
if( isset($_FILES['pdf']) )
{
unset($message);
$ext = array('pdf', 'PDF');
$poids = 2000000;
$temp = './upload/';
if( !in_array(substr(strrchr($_FILES['pdf']['name'], '.'), 1), $ext) )
{
$message = 'Cette extension de fichiers n\'est pas autorisé.';
}
elseif( file_exists($_FILES['pdf']['tmp_name']) && filesize($_FILES['pdf']['tmp_name']) > $poids )
{
$message = 'Votre document dépasse la taille autorisée.';
}
if( !isset($message) )
{
$dest = basename($_FILES['pdf']['name']);
$dest = strtr($dest,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$dest = preg_replace('`([^.a-z0-9]+)`i', '_', $dest);
// copie du fichier
$envoi = move_uploaded_file($_FILES['pdf']['tmp_name'], $temp . $dest);
if( $envoi === false )
{
$reussite = 'Une erreur s\'est produite lors de l\'enregistrement de votre document, merci d\'en aviser l\'administrateur du site';
}
else
{
$reussite = 'Votre document a bien été enregistré, merci';
}
}
else
{
echo $message;
}
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-15" />
</head>
<body>
<?php
if( isset($reussite) ) echo '<p>' . $reussite . '</p>';
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
<p>
<!-- <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> -->
<label for="pdf">Votre fichier <acronym title="Portable Document Format">PDF</acronym> :
</label><input type="file" name="pdf" id="pdf" />
</p>
<p>
<input type="submit" name="envoi" value="Envoyer" />
</p>
</form>
</body>
</html>
Pour les gros fichiers, il faut modifier le php.ini comme expliqué dans le tutoriel, enfin si tu y a accès.