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

JavaScript Discussion :

FSO avec IE 8 et 9


Sujet :

JavaScript

  1. #1
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Par défaut FSO avec IE 8 et 9
    Bonjour,

    j'ai mis en place une vérification du poids d'un fichier avant envoi du formulaire avec jQuery validate qui fonctionne impeccable sur Chrome, FF, Safari, Opera, IE10... mais avec IE 8 et IE9 je rencontre toujours un blocage même après avoir autorisé le contrôle ActiveX. Error: Un composant ActiveX ne peut pas créer un objet Comme si l'autorisation n'avait pas été prise en compte.

    Auriez-vous une idée pour contrer cela ?
    une autre méthode à ajouter en plus de celle-ci pour IE8 et IE9 ?

    C'est pour une appli web donc je n'ai pas la main sur les paramètres utilisateur.

    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
    jQuery.validator.addMethod("maxfilesize", function(value, element, params) {
        var elementsize;
        try{
          elementsize = element.files[0].size;
        }catch(e){
          var browserInfo = navigator.userAgent.toLowerCase();
          if(browserInfo.indexOf("msie") > -1){
            try{
              var fso = new ActiveXObject("Scripting.FileSystemObject");
              elementsize = fso.getFile(element.value).size;
            }catch(e){
              alert(e);
            }
          }else{
            return true;
          }
        }
        var size = params[0], typesize = params[1];
        if( typesize == "Ko" ){
          size *= 1024;
        }else if(typesize == "Mo"){
          size *= 1024 * 1024;
        }else if(typesize == "Go"){
          size *= 1024 * 1024 * 1024;
        }
        return this.optional(element) || elementsize < size;
      }, jQuery.validator.format("The max file size of {0}{1} is reached"));
     
      $.validator.addClassRules({
        checksize:{
          required: true,
          maxfilesize: [2, "Mo"]
        }
      });

  2. #2
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    heu de memoire (je n'ai pas d'IE sous la main)

    l'attribut value d'un élément file n'est pas un chemin vers un fichier
    je doute que le getFile puisse s'y appliquer

    il me semble que c'est un attribut de element.files[0] qui contient le chemin vers le fichier source.

    A+JYT

    A+JYT

  3. #3
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Par défaut
    ça fonctionne impec avec IE10 donc je suppose qu'il atteint quand même le fichier mais sous IE 8 et 9 c'est à la construction de l'objet que ça bloque donc il n’atteint même pas cette instruction.

    Je vais quand même revérifier au passage parce que je n'ai pas vraiment l'habitude de bosser avec des activeX.

    EDIT: c'est très con ce que je dis ci-dessus puisque IE10 passe par l'API HTML5.
    Ceci dit element.value récupère bien le chemin du local fichier. (element étant mon file input) mais vu que le contrôle ne se construit même pas je ne peux pas savoir s'il peut récupérer ou non le poids du fichier.

    EDIT:
    pourtant c'est apparement la bonne approche, sauf dans la pratique
    http://msdn.microsoft.com/en-us/libr...(v=vs.60).aspx
    http://msdn.microsoft.com/en-us/libr...(v=vs.60).aspx

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 211
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 211
    Par défaut
    Bonjour,
    as tu essayé avec
    elementsize = fso.GetFile(element.value).size;

  5. #5
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Par défaut
    C'est bien vu... mais ça ne change rien

  6. #6
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2012
    Messages : 26
    Par défaut
    bon... après avoir dansé la gigue avec IE (un pas en avant, un pas en arrière) j'ai fini par faire un fallback avec un uploader en AS3 qui ne m'a pas posé de problèmes pour accéder aux infos des fichiers locaux, lui !

    entre les problèmes de fakepath (sécurité IE à la con), les problèmes de xdomain et autres... on fini par tourner dingue !! Sans obliger l'utilisateur à modifier ses paramètres je n'ai pas réussi à obtenir quelque chose de fonctionnel.

    Je testerai si chrome frame me permet de me passer de cela mais je ne souhaitais pas obligé l'utilisateur à installer quoi que ce soit pour que l'appli fonctionne... même si ça m'aurais arrangé pour d'autres problèmes de css.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/02/2011, 23h01
  2. probleme test presence d'un fichier(avec fso)
    Par pagez dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/08/2005, 15h24
  3. créer un fichier côté client avec FSO
    Par RobinNono dans le forum ASP
    Réponses: 7
    Dernier message: 16/08/2005, 09h46
  4. Erreur avec la fontion Split ou FSO
    Par TheCool dans le forum ASP
    Réponses: 15
    Dernier message: 14/01/2005, 18h08
  5. Réponses: 8
    Dernier message: 14/11/2003, 22h51

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