2017-01-10 3 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

я разработал достаточно. Я пытаюсь проверить размер загруженного файла, и если он превышает 2 МБ, он должен оповестить о всплытии. – Ali

+0

Функция 'validateImage' в встроенных атрибутах вызывает' validateFileExtension'? У вас действительно есть функция validateImage? – Perumal

+0

Итак, перейдите к какому значению, которое на самом деле имеет свойство в этой точке ... (отладчик/журнал на консоль) – CBroe

ответ

1

Вы используете другой вызов функции. Используйте метод validateFileExtension() в событии onchange. Или используйте любое другое имя для обеих валидаций.

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

Смежные вопросы