Frameworks.suFrameworks.su Шпаргалка вебмастера

  • Главная
  • Framework Kohana
  • PHP
  • Javascript
  • CSS
  • Сервисы
    • Генератор паролей
  • Контакты
Главная / Javascript / Узнать размер файла до загрузки на сервер. Javascript, jQuery

Узнать размер файла до загрузки на сервер. Javascript, jQuery

23.06.2014 0 9443

Допустим необходимо ограничить размер загружаемого файла на сервер в обычной веб форме. Это не сложно сделать на стороне сервера php, perl, ruby даже apache имеет инструменты для  решения данной задачи. Но вот незадача - что если нужно предотвратить отправку формы если размер файла слишком велик?

Раньше считалось что javascript с такой задачей справится не может - у него нет доступа к файловой системе, но на сегодняшний день браузеры предоставляют для поля ввода файла массив files. Его апи нескольго отличается в зависимости от браузера. А IE вообще не предоставляет такого функционала, но имеет альтернативное решение на основе ActiveX.

Следующая функция в комментариях не нуждается - она определяет размер файла и если он больше N Мб то возвращает false.

function validateSize(fileInput,size) {
    var fileObj, oSize;
    if ( typeof ActiveXObject == "function" ) { // IE
        fileObj = (new ActiveXObject("Scripting.FileSystemObject")).getFile(fileInput.value);
    }else {
        fileObj = fileInput.files[0];
    }
 
    oSize = fileObj.size; // Size returned in bytes.
    if(oSize > size * 1024 * 1024){
        return false
    }
    return true;
}

И пример использование. В качестве параметра передаем ссылку на DOM елемент и размер в Мб

jQuery('#file_attachment').change(function () {
    if(!validateSize(this,10)){
        alert("Размер файла превышает 10 MB");
    }
});

Кроме параметра size можно смело использовать name (имя файла), type (MIME тип).

Также стоит учесть что ActiveXObject  не работает при стандартных настройках безопасности на  Win7 из-за ужесточения политики безопасности и по сему требует от пользователя изменения настроек браузера.

Теги:
  • jQuery

Оставить комментарий Отмена

*

*

*

*

Категории

  • PHP
    • Framework Kohana
  • Javascript
  • CSS
  • Администрирование

Теги

Framework Kohana Пример jQuery Уроки CRON Установка и настройка Backup CSS3 Валидация API Bash Cache Captcha i18n Linux

Авторизация

  • Забыли пароль?
  • Регистрация

Популярные статьи

  • Находим расстояние до ближайших станций метро

    Находим расстояние до ближайших станций метро

    17.02.2017 102828
  • Регистрация и авторизация пользователей. Модуль Auth в Kohana 3.3.x

    Регистрация и авторизация пользователей. Модуль Auth в Kohana 3.3.x

    02.07.2014 44445
  • Собственная система лайков на PHP и JQuery

    Собственная система лайков на PHP и JQuery

    06.04.2015 33129
  • Javascript — сумма прописью

    Javascript — сумма прописью

    07.07.2014 22968
  • Cross-domain ajax с помощью jQuery

    Cross-domain ajax с помощью jQuery

    24.04.2015 19841
Copyright © 2014-2025 Frameworks.su. Все права защищены.