Иначе не менять и читать с размером изображения загрузить jquery

Мне нужно проверить размер изображения.

Когда я загружаю изображение, оно показывает мне сообщение, если размер файла изображения превышает 1 МБ, но когда я загружаю изображение с размером файла менее 1 МБ, сообщение не скрывается.

Вот мой код:

html

    <input id="image-file" type="file" name="file" />
    <input type="submit" value="Upload" />
    <div class="alert alert-danger imgSize">fdfdfdfdfdf</div>

js

 $(document).on('change' ,'#image-file',function() {
   if(this.files[0].size >= 1024){

     $(".imgSize").fadeIn();

   }else{

     $(".imgSize").fadeOut();
     alert("sdsd");

   }
 });

https://codepen.io/hesham-farag/pen/YJoKwm

Поскольку размер - байт, вам следует использовать this.files[0].size >= 1048576.

Mohammad 31.10.2018 14:23

2 МБ = 2097152 Верно?

Hefm 31.10.2018 14:38

Да правильно. 2M = 2 * 1048576

Mohammad 31.10.2018 14:41
0
4
69
2

Ответы 2

Ваш jQuery прав, проблема в размере файла. Вы получаете значение в байтах и ​​сравниваете с другим в килобайтах, поэтому расчет кажется неправильным.

Просто измените значение на 1048576 (эквивалент 1 МБ), и он должен работать.

1024 * 1024 равен 1048576. Что такое 125000?
Mohammad 31.10.2018 14:34

я думаю, что 1 МБ = 1048576 в качестве комментария

Hefm 31.10.2018 14:37

Я использовал автоматическое преобразование. Я обновил ответ.

Thales Ludwig 31.10.2018 14:46

В js размер файла измеряется в байтах:

Попробуйте следующий код:

$(document).on('change' ,'#image-file',function() {
   if(this.files[0].size >= (1 * 1024 * 1024)){
     
     $(".imgSize").html("Image size is <b>more</b> than 1 mb.");
     
   }else{
     
     $(".imgSize").html("Image size is <b>less</b> than 1 mb.");
     
   }
 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

Upload image:<input id="image-file" type="file" name="file" />

<br><br>Message: 
<div class="imgSize"></div>

Другие вопросы по теме