Problème d'upload de fichier
j'essaie d'ajouter une fonction pour que les utilisateurs n'ayant pas un fichier sur leurs propre site puissent l'uploader sur le ftp (principalement pdf et doc).
J'ai le code ci-dessous mais quand j'essaie j'ai l'erreur de l'extension avec n'importe quel fichier.
upload.php
Code:
1 2 3 4 5
| <form method="POST" action="upload_file.php" enctype="multipart/form-data">
<input type="file" name="file">
<input type="hidden" name="MAX_FILE_SIZE" value="2000000"><input type="submit" name="envoyer" value="Envoyer le fichier">
</form> |
upload_file.php
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| <?php
$dossier = 'upload/';
$fichier = basename($_FILES['file']['name']);
$taille_maxi = 2000000;
$taille = filesize($_FILES['file']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.doc', '.docx', '.pdf', '.txt');
$extension = strrchr($_FILES['avatar']['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 pdf, doc, docx, png, gif, jpg, jpeg ou txt.';
}
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['file']['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 !';
}
}
else
{
echo $erreur;
}
?> |
d'où vient cette erreur ?
merci d'avance ! :-)