2017-07-17 15 views
1

Magentoの中でファイルの検証の大きさに私は私がこのようなファイルサイズのカスタム検証コードを持って、私はMagentoのフォームバリデータでファイルの検証で問題が発生した1

を問題に直面しています。

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

私のフォームには2つのファイルがあります。

上記の検証コードは、このフィールドで正常に機能しています。

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

が、それはフィールドの下

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

答えて

0

を検証するために失敗しているエラーは、ライブラリではなく、あなたのバリデータのコールバック関数に存在しません。

次のコード

var fileSize = file[0].size 

を使用してファイルのサイズをチェックしている。しかし、ユーザーが任意のファイルをアップロードしていない場合、変数file[0]undefinedです。したがって、file[0].sizeを実行すると、Cannot read property 'size' of undefinedというエラーがスローされます。そのため、コードの処理が停止し、目的のメッセージが得られないのです。

ユーザーがサイズを確認する前にファイルをアップロードしたかどうかを確認するのがよいでしょう。

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

ありがとうございました。 –

関連する問題