Вычисление максимального ограничения размера файла в JavaScript

В современных JavaScript-фреймворках, когда мы загружаем файл, мы обычно создаем функцию-обработчик для обработки изменений в содержимом входного типа файла. Например, в Vue JS это часто выглядит следующим образом:

async fileChange(e) {
  if (e.target.files[0].size / (1024 * 1024) > 10) {
    this.fileError = "File size is too large (max 10 MB)";
  } else {
    this.file = e.target.files[0];
  }
},
Войти в полноэкранный режим Выйти из полноэкранного режима

Цель приведенного выше кода заключается в том, что если размер выбранного файла больше 10 МБ, появится сообщение об ошибке. Если размер файла меньше или равен 10 МБ, то файл будет переведен в состояние.


Зачем нам нужно вычислять (1024 * 1024) в нашем коде? Почему бы нам просто не заменить код на 1048576?

Потому что существуют различия в вычислении размера файла в разных операционных системах. Например, расчет размера файла в Windows отличается от расчета в Ubuntu Linux.


Расчет размера файла в Windows:

Расчет размера файла в Ubuntu Linux:


Подробнее об этом:

https://askubuntu.com/questions/341143/why-same-file-shows-different-sizes-in-different-operating-systems

С помощью этого решения, разница в расчетах в разных ОС может быть преодолена, что вы думаете о решении?

Оцените статью
devanswers.ru
Добавить комментарий