Salut,
Je suis en train de faire un script pour uploader des fichiers.
Voici le code
if(isset($_POST['envoyer']))
{
$dossier = 'upload/';
$fichier = basename($_FILES['fichier']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['fichier']['tmp_name']);
echo 'taille : '.$taille;
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['fichier']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo 'Upload effectué avec succès !';
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !<br/>';
}
}
else
{
echo $erreur;
}
}
else
{
echo '<form method="POST" action="upload.php" enctype="multipart/form-data">';
echo 'Fichier (taille max : 2Mo) : <input type="file" name="fichier"><br/>';
echo '<input type="submit" name="envoyer" value="Envoyer le fichier">';
echo '</form>';
}
Lorsque je met un fichier qui fait moins que 2Mo c’est nikel.
Mais lorsque je met un fichier plus gros que 2Mo, ca m’affiche « echec de l’upload » alors que normalement ca devrais m’afficher le message d’erreur « Le fichier est trop gros … ».
Et alors quand je met un très gros fichier (>9Mo), le submit est meme pas pris en compte et ca me remet direct sur le formulaire (c’est meme pas traité).
Est ce que quelqu’un saurais pourquoi ca me fais ca ?
Merci de vos réponses