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] upload fichier pdf sous Firefox 3.0.4


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut [Upload] upload fichier pdf sous Firefox 3.0.4
    Bonjour a tous,

    J'ai l'impression d'avoir un pb avec la derniere version de firefox (3.0.4) , je teste le type du fichier uploader sur mon serveur qui doit obligatoirement être de type *.pdf, le type reçu est application/force-download et non application/pdf.
    J'ai le problème avec certaine version de FireFox mais pas toutes (j'ai fait un essai à partir d'un autre PC et le type est correctement reconnu comme application/pdf).

    Avez-vous constatez ce problème ? je ne trouve pas d'info sur le net ???
    Comment faire ? Puis-je contourner le pb par php ? Ou dois-je jouer sur la config de mon FF, si oui, comment ???

    Merci à tous

    Em.

  2. #2
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Rajoute lui pour voir :
    C'est un bug firefox, je ne sais pas où ils en sont des correctifs...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    merci blueice, je ne peux malheureusement pas faire d'essai pour l'instant, mais, une petite réflexion, le type retrouné étant application/forced-download, je ne vois pas ce que ça va changer de tester application/x-pdf plutôt que application/pdf car mon code est le suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $type_file = $_FILES['fichier']['type'];
    if( !strstr($type_file, 'application/pdf'))
    {
       $msg=$msg."$type_file";
       $error=true;
    }

  4. #4
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    C'est le navigateur qui renvoie le type mime du fichier uploadé, donc cela fonctionnera de manière aléatoire suivant les navigateurs.

    Solution : si le type mime est correct, tu fais l'upload, dans le cas contraire, tu testes l'extension, si l'extension est correcte, tu fais l'upload.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Par défaut
    ThomasR, juste pour que soit certaine de bien comprendre, le type mime c'est bien ca ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $_FILES['fichier']['type']
    Donc, ce que tu dis c'est ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    $type_file = $_FILES['fichier']['type'];
    if( !strstr($type_file, 'application/pdf'))
    {
       $extension=explode (".",$_FILES['fichier']['name']);
       if (strcmp($extension[1],"pdf") == 0
       {
          // faire l'upoload
       }
    }
    else
       // faire l'upload
    c'est bien ça ce que tu me dis ?
    mais, n'est pas un peu dangeureux de test de cette manière l'extension, on pourrait faire un index.php.pdf par exemple, est-ce risqué ?

  6. #6
    Modérateur
    Avatar de blueice
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2003
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 494
    Par défaut
    Suffit de récupérer les types mime émis par les navigateurs et de tester...

  7. #7
    Membre Expert
    Avatar de ThomasR
    Homme Profil pro
    Directeur technique
    Inscrit en
    Décembre 2007
    Messages
    2 230
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2007
    Messages : 2 230
    Par défaut
    Le $_FILES['index']['type'] renvoit effectivement le type MIME du fichier envoyé.

    Non ce n'est pas exactement la procédure comme je l'ai décrite

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $type_file = $_FILES['fichier']['type'];
    $extension = strtolower(substr($_FILES['fichier']['name'], strrpos($_FILES['fichier']['name'], '.') + 1));
    if(strstr($type_file, 'application/pdf')){
        // On est sûr que c'est un PDF, upload
    }
    // On est pas sûr on testes l'extension
    elseif($extension == 'pdf'){
       // Si extension OK, upload
    }
    else{
        // Fichier mauvais
    }
    Concernant le fichier.php.pdf, tu ne risques rien si ce n'est de ne pas pouvoir afficher ce fichier en tant que pdf.

    Le script ne sera pas executé.

    Si tu es paranoaique a ce point là, tu peux lire le fichier et regarder si il ne contient pas de <?php


    Suffit de récupérer les types mime émis par les navigateurs et de tester...
    Le navigateur renvoie le type forced-download pour le fichier envoyé avec FF, et non le type-mime idoine.

    Si tu as une solution je suis preneur, j'ai eu le même problème.

    La vérification des types de fichiers reste toujours un point assez bancal.

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

Discussions similaires

  1. [Upload] Upload de fichiers PDF
    Par magda62 dans le forum Langage
    Réponses: 10
    Dernier message: 02/05/2009, 08h13
  2. Upload conflit avec htaccess sous firefox
    Par freesly dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 20/05/2008, 17h17
  3. [Upload] Upload de fichiers et sous-domaines
    Par Pascmar dans le forum Langage
    Réponses: 2
    Dernier message: 02/01/2008, 18h08
  4. [Upload] Upload de fichiers PDF
    Par Travisnux dans le forum Langage
    Réponses: 3
    Dernier message: 23/03/2007, 10h49
  5. [Upload] gerer upload de fichier pdf
    Par calitom dans le forum Langage
    Réponses: 4
    Dernier message: 12/10/2006, 18h58

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