2017-01-10 9 views
0

サイズと拡張子/タイプのファイルをアップロードするためのスクリプトがここにあります。型チェックはうまく機能しますが、サイズの型チェックでは機能しません。助けてください?アップロード時の画像サイズを制限する

<script type="text/javascript"> 
    function validateImage(fld) { 
     if(!/(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$/i.test(fld.value)) { 
      alert("Invalid image file type. Supported image file types: PNG, BMP, JPEG, JPG, GIF");  
      fld.form.reset(); 
      fld.focus();   
      return false; 
     } 

     if(fld.files[0].size > 2000000) { 
      alert("Invalid image file type. Supported image file types: PNG, BMP, JPEG, JPG, GIF");  
      fld.form.reset(); 
      fld.focus(); 
      return false; 
     } 
     return true; 
    } 
</script> 

<input type="file" name="logo" id="logo" onchange="return validateImage(this);"> 

助けをお待ちしています。

+0

ファイルサイズの計算を逃したと思います。私はアップロードされたファイルのサイズを調べようとしていますが、2MBより大きい場合はpopanの警告が必要です。 – Ali

+0

inline属性の 'validateImage'関数は' validateFileExtension'を呼び出しますか?本当に 'validateImage'関数が定義されていますか? – Perumal

+0

その時点でプロパティが実際に持っている値を確認してください...(デバッガ/ログをコンソールに) – CBroe

答えて

1

異なる関数呼び出しを使用しています。 onchangeイベントのvalidateFileExtension()呼び出しを使用します。または、両方の検証に他の名前を使用します。

<script type="text/javascript"> 
    function validateFileExtension(fld) { 
     if(!/(\.bmp|\.gif|\.jpg|\.jpeg|\.png)$/i.test(fld.value)) { 
      alert("Invalid image file type. Supported image file types: PNG, BMP, JPEG, JPG, GIF");  
      fld.form.reset(); 
      fld.focus();   
      return false; 
     } 

      if(fld.files[0].size > 2097152) { 
      alert("Invalid image file type. Supported image file types: PNG, BMP, JPEG, JPG, GIF");  
      fld.form.reset(); 
      fld.focus(); 
      return false; 
     } 

     return true; 
    } </script> 

    <input type="file" name="logo" id="logo" onchange="return validateFileExtension(this);"> 
+0

これはコピーしたときのタイプミスですが、これで問題は解決されません。 – Ali

+2

それは私のためにうまくいきます。 –

+2

2MBの意味は2097152 –

0

こちらのコードリファレンスを参考にしてください。私はあなたが私は十分に精緻

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script type="text/javascript"> 
 
function validateImage(fld) { 
 
    
 
     if(fld.files[0].size > (1*1024*1024)) { 
 
     alert("File size must be less than 1 MB");  
 
     fld.form.reset(); 
 
     fld.focus(); 
 
     return false; 
 
    } 
 

 
    return true; 
 
} 
 
</script> 
 

 
<input type="file" name="logo" id="logo" onchange="return validateImage(this);">

関連する問題