IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Upload avec Firefox [PHP 5.3]


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut Upload avec Firefox
    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!

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    fait un print_r($_FILES) au début de ton code pour voir

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    voici la réponse du print_r($_FILES);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [monfichier] => Array ( [name] => deathguard.jpg [type] => image/jpeg [tmp_name] => /home/xbmc/tmp/phpw2y070 [error] => 0 [size] => 106865 ) ) Upload effectué avec succès !
    j'ai eu cela en utilisant chrome. sous Firefox, je n'ai aucun message qui apparait.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    bizarre, ta page est valide w3c ?

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    non, il y a peu de chances pour qu'elle le soit :
    voici le code que j'ai mis :
    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
    38
    39
    <?php
    header( 'content-type: text/html; charset=utf-8' );
    print_r($_FILES);
    $dossier = '/home/xbmc/Mariage/';
    $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;
    }
    ?>
    n'empêche que lorsque je tape directement la page upload.php, j'ai bien des erreurs =>normal vu qu'il n'a aucun fichier à uploader

    mais lorsque j'essaye d'uploader 14_darkholiday2.jpg, j'ai bien les infos du print_r($_FILES) sous chrome (Cf mon dernier post), mais rien n'apparait sous FF.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    je parle plutôt de celle du formulaire

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    ok!

    pour le formulaire, rien de compliqué du tout :

    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
    <!DOCTYPE html
      PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html lang="fr">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Envoi de fichier</title>
    </head>
    <body>
     
    <h1>Envoi d'un fichier:</h1>
     
    <ol>
     
            <li>Faites une archive (zip) de toutes vos photos, vous pourrez les envoyer en une seule fois!</li>
            <li>Attention,  &ccedil;a peut prendre du temps! lancez &eacute;ventuellement &ccedil;a la nuit :)</li>
    </ol>
    </p>
    <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>
     
    </body>
    </html>
    de là à ce que ça soit pas valide, ça serait balot!!

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    moi ça marche, dans ta page upload.php, mais juste un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <pre>
    <?php
    var_dump($_FILES);

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    voila ce que ça donne :

    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
     
    array(1) {
      ["monfichier"]=>
      array(5) {
        ["name"]=>
        string(15) "Darth Vader.jpg"
        ["type"]=>
        string(10) "image/jpeg"
        ["tmp_name"]=>
        string(24) "/home/xbmc/tmp/phptuqBFA"
        ["error"]=>
        int(0)
        ["size"]=>
        int(69629)
      }
    }
    Array
    (
        [monfichier] => Array
            (
                [name] => Darth Vader.jpg
                [type] => image/jpeg
                [tmp_name] => /home/xbmc/tmp/phptuqBFA
                [error] => 0
                [size] => 69629
            )
     
    )
    Upload effectué avec succès !
    et ceci, avec chrome... toujours rien avec FF!

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    juste le var_dump et rien d'autre, et quand tu dis "rien avec FF" c'est quoi page blanche ?

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    quand je dis rien avec FF, c'est effectivement une page blanche.
    j'ai donc réécrit ma page upload.php avec uniquement le var_dump dedans.
    voici le résultat avec chrome :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    array(1) { ["monfichier"]=> array(5) { ["name"]=> string(19) "14_darkholiday2.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(24) "/home/xbmc/tmp/php7rA2XJ" ["error"]=> int(0) ["size"]=> int(65196) } }

  12. #12
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    ton niveau d'erreur est au maximum (error_reporting) ?
    regarde les logs avec firebug

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    bon, le problème, c'est que je ne maitrise pas le débug...
    j'ai téléchargé et installé firebug. Est ce que je peux abuser et te demander comment voir les logs/ compteurs d'erreurs avec cet outil?

  14. #14
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par bozoo2 Voir le message
    bon, le problème, c'est que je ne maitrise pas le débug...
    j'ai téléchargé et installé firebug. Est ce que je peux abuser et te demander comment voir les logs/ compteurs d'erreurs avec cet outil?
    tu cliques sur l'icone, tu va dans l'onglet réseau, tu l'active si c'est pas activé, ensuite tu réactualisés la page, les logs vont s'affichés

  15. #15
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    Merci pour l'aide

    donc sur firebug, je n'ai aucune erreur lorsque j'upload le fichier. par contre, je n'ai aucune réponse non plus... ce qui n'est pas normal.

    côté serveur, pas de problème de log : ils s'affichent bien lorsque je tape directement upload.php sans passer par le formulaire.

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut
    comment dit on, déjà : eureka?

    merci stealth35 de ton aide, je viens de trouver la source de mes problèmes...
    IE et crhome utilisent un proxy, et pas Firefox. l'accès au réseau publique de firefox passe par un vieux routeur très capricieux qui doit réinitialiser la connexion lors de l'upload du fichier...

    C'est cette absence de réponse de mon serveur qui m'a mis la puce à l'oreille (merci firebug! merci stealth35!)

    A+

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] Problème upload de gros fichiers avec Firefox
    Par the rootsm@n dans le forum Langage
    Réponses: 12
    Dernier message: 19/02/2006, 20h43
  2. Ecouter la radio avec Firefox
    Par Cian dans le forum Applications et environnements graphiques
    Réponses: 20
    Dernier message: 14/07/2005, 19h19
  3. Problème Site Web avec Firefox
    Par bodybug dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/01/2005, 23h48
  4. balise <img> dans un tableau avec firefox
    Par yannock dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/10/2004, 16h44
  5. url d'une page asp ou upload avec get
    Par taupin dans le forum ASP
    Réponses: 18
    Dernier message: 22/08/2003, 14h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo