2017-07-17 2 views
1

J'ai un problème dans la validation d'un fichier sous forme magento validateur,Je suis face à problème dans la taille du fichier de validation dans magento 1

j'ai le code de validation personnalisé pour la taille du fichier comme celui-ci.

 
Validation.add('validate-filesize', 'Upload file should be less than 2MB',function(v,elem) {

var file = elem.files; var fileSize = file[0].size; if(fileSize <= 2000000){ return true; } else{ return false; } });

et ma forme il y a deux filds de fichiers.

ci-dessus le code de validation fonctionne bien pour ce champ.

<input type="file" id="file1" name="file1" value="" class="input-text required-entry validate-filesize">

mais il ne parvient pas à valider sous le champ

<input type="file" id="file2" name="file2" value="" class="input-text validate-filesize">

Répondre

0

L'erreur ne se trouve pas dans la bibliothèque, mais dans votre fonction de rappel validateur.

Vous regardez la taille du fichier en utilisant le code suivant

var fileSize = file[0].size 

Mais lorsque l'utilisateur ne télécharge pas de fichiers, la variable file[0] est undefined. Ainsi, quand vous faites file[0].size, il génère une erreur en disant Cannot read property 'size' of undefined. Et c'est pourquoi le traitement de votre code s'arrête et vous n'obtenez pas le message désiré. Un bon moyen de le faire serait de vérifier si l'utilisateur a téléchargé des fichiers avant de vérifier sa taille, comme ça.

var file = elem.files; 

if(file.length == 0) return true; // all is good if user didn't upload any file 

//go ahead with the rest of the code otherwise 

var fileSize = file[0].size; 

if(fileSize <= 2000000){ 
    return true; 
} 
else{ 
    return false; 
} 
+0

merci mon travail bro .. –