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"]
    }
  });