Bonjour à tous,

je viens de suivre pas mal de post concernant l'upload de fichier en PHP. j'arrive à faire quelque chose d'assez simple qui fonctionne avec IE8 et Chrome 14... par contre, ça ne fonctionne pas avec firefox 7!!

Voici le code html et le code php :

html :
Code html : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
<form action="upload.php" method="post" enctype="multipart/form-data">
        <p>
                Formulaire d'envoi de fichier :<br>
                <input type="file" name="monfichier" /><br>
                <input type="submit" value="Envoyer le fichier" />
        </p>
</form>


php (upload.php)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 = 'uploads/';
$fichier = basename($_FILES['monfichier']['name']);
$taille_maxi = 1000000000;
$taille = filesize($_FILES['monfichier']['tmp_name']);
$extensions = array('.png', '.gif', '.jpg', '.jpeg', '.zip', '.tar');
$extension = strrchr($_FILES['monfichier']['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 png, gif, jpg, jpeg, txt ou doc...';
}
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['monfichier']['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;
}
?>
il n'y a rien dans les logs apache... bref, je reste perplexe!

Si jamais vous avez une piste pour m'éclairer la lanterne, ça serait top!

Merci!