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 :

$_FILES vides sous IE


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 44
    Points : 22
    Points
    22
    Par défaut $_FILES vides sous IE
    Bonjour,

    Tout est dans le titre. Mon problème est lorsque j'upload un fichier avec IE, ma variable superglobales $_FILES est vide.
    Hors, il se trouve que cela fonctionne correctement sous FireFox ou même Chrome.

    Si vous avez une piste, je suis preneur.

    Cordialement,
    Jimmy

  2. #2
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    montre ton code (et le formulaire)

  3. #3
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    Voici mon formulaire
    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
     
    <form method="post" action="visualisez.php" enctype="multipart/form-data">
        <div id='upload_fichier'>
          <input type="file" id="upload_logo" name="upload_logo" style="display:none;" />
          <input type="text" id="text_logo" style="width:100px;" /><br />
          <input type="button" id="bouton_logo" value="Parcourir..." onclick="getfile();" style="width:100px;"/>
          <script type="text/javascript">
    function getfile(){
        document.getElementById('upload_logo').click();
        document.getElementById('text_logo').value = document.getElementById('upload_logo').value;
    }
    </script>
         <small style="position:absolute;top:100px; left:20px;">(formats acceptés: png, jpg)</small>
     
          <p style="position:absolute;top:110px;left:20px;">
          <small>Placer votre logo à :
          <blockquote style="position:absolute;left:35px; top:125px;">
            <input type="radio" name="aligne" value="Gauche" checked />Gauche<br />
            <input type="radio" name="aligne" value="Droite" />Droite
          </blockquote>  </small>
          </p>
    </div>
     
    <input src="images/btn-visualisez.png" onMouseOver="this.src='images/btn-visualisez-hover.png'"
        onMouseOut="this.src='images/btn-visualisez.png'" type = "image" id = 'submit_personnalisation'  value = 'submit' />
     </form>
    et mon traitement :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    session_start();
    print_r($_FILES['upload_logo']);
    if (isset($_FILES['upload_logo']['name']))
    {
    // Tableaux de donnees
    $tabExt = array('jpg','JPG','png', 'PNG','jpeg','JPEG');    // Extensions autorisees
    $infosImg = array();
    $repertoire = 'upload/'; // Repertoire cible
    $image= false;
     
    // Variables
    $loc_logo = $_FILES['upload_logo']['name'];
    //print_r($_FILES['upload_logo']);
    $Nom_logo = explode('.', $loc_logo);
    $nom_logo = strtolower($Nom_logo[0]);
    $extension = '';
    $temp = $_FILES['upload_logo']['tmp_name'];
    $nomImage = '';
     
    $url =  $repertoire.$_FILES['upload_logo']['name'];
    $_SESSION['image'] = $url;
     
    // Upload de l'image
    if( !empty($_FILES['upload_logo']['name']) ){
      // Recuperation de l'extension du fichier
      $extension  = pathinfo($_FILES['upload_logo']['name'], PATHINFO_EXTENSION);
      // On verifie l'extension du fichier
      if(in_array(strtolower($extension),$tabExt)){
       // On recupere les dimensions du fichier
        $infosImg = getimagesize($temp);
     
        // On verifie le type de l'image
         if($infosImg[2] >= 1 && $infosImg[2] <= 14){
     
            // Parcours du tableau d'erreurs
             if(isset($_FILES['upload_logo']['error']) && UPLOAD_ERR_OK === $_FILES['upload_logo']['error']){
                // Si c'est OK, on teste l'upload
                if(move_uploaded_file($temp, $url)){
                  $image=true;
                  if(($infosImg[0] > WIDTH_MAX) && ($infosImg[1] > HEIGHT_MAX)){
                  $taille_img_pdf = ceil(55.5*(164.4/58)/3.7);
     
                    redimensionner_image($url, 55.5);
                    redimensionner_image_pdf($url, $taille_img_pdf );
                    }
                }
                else{
                  $message = 'Problème lors de l\'upload !<br />';
                }
             }
             else{
               $message = 'Une erreur interne a empêché l\'uplaod de l\'image';
             }
         }
         else{
            // Sinon erreur sur le type de l'image
            $message = 'Le fichier à uploader n\'est pas une image !';
          }
        }
        else{
          // Sinon on affiche une erreur pour l'extension
         $message = 'L\'extension du fichier est incorrecte !';
        }
    Voilà, c'est assez compliqué. Mais je ne récupère rien dans mon $_FILES sous IE.
    J'ai cherché pendant plusieurs heures mais aucune idée d'où pourrait provenir le problème.

  4. #4
    Membre émérite
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Points : 2 446
    Points
    2 446
    Par défaut
    tu voudrais pas essayer avec un <input type="file" .../> ?

    edit:

    tu veux pas commencer par une version sans javascript ? comme ça tu verras que tu utilises du js qui n'est pas assez compatible partout.
    PHP fait nativement la validation d'adresse électronique .
    Celui qui a inventé mysql_connect(...) or die() est déjà mort plusieurs fois.

    Utilisez le bouton résolu!

  5. #5
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    en virant tout le javascript ça marche ?

  6. #6
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    Le souci, c'est que j'ai une place limité et donc je suis obligé de mettre mon champ de texte au dessus de mon bouton a moins que vous avez une autre solution?

  7. #7
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Jimmy72_ Voir le message
    Le souci, c'est que j'ai une place limité et donc je suis obligé de mettre mon champ de texte au dessus de mon bouton a moins que vous avez une autre solution?
    c'est pas question, est ce que ça marche ?

  8. #8
    Membre à l'essai
    Homme Profil pro
    Webmaster
    Inscrit en
    Juin 2010
    Messages
    44
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Juin 2010
    Messages : 44
    Points : 22
    Points
    22
    Par défaut
    Oui cela fonctionne sans Javascript.

    Je vous remercie pour votre aide. Je pensais pas que cela le bloquerais.

    Merci beaucoup.
    Cordialement,
    Jimmy

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

Discussions similaires

  1. Rapport vide sous delphi mais ok ds rave report
    Par Mihalis dans le forum Delphi
    Réponses: 3
    Dernier message: 09/05/2007, 09h30
  2. rapport vide sous tomcat
    Par peterjonesiii dans le forum iReport
    Réponses: 1
    Dernier message: 25/09/2006, 10h38
  3. Outils d'administration vide sous Windows Server 2003
    Par FoxDeltaSierra dans le forum Windows Serveur
    Réponses: 3
    Dernier message: 30/11/2005, 09h32
  4. Réponses: 7
    Dernier message: 20/11/2005, 19h26
  5. Comment tester si un repertoire est vide sous Linux
    Par chouchouappc dans le forum Linux
    Réponses: 3
    Dernier message: 24/02/2005, 12h03

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