Получение размера загружаемого файла перед загрузкой

Когда пользователь выбирает файл для загрузки, есть ли способ получить точный размер этого файла до начала загрузки? Я предполагаю, что это нужно сделать на стороне клиента с помощью jQuery или JavaScript. Любые идеи как?

Это невозможно сделать в чистом Javascript в текущих браузерах.

Вместо этого вы можете использовать Uploadify , в котором используется Flash.

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

$("#file_input_selector").bind('change', function(){ alert(this.files[0].size); }); 

Не уверен во всех проблемах совместимости, но это, похоже, работает для меня отлично.

Взгляните на этот пост:

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

Я предлагаю вам взглянуть на API файлов HTML5. Это, в сочетании с некоторыми JS, может помочь вам. Я могу только сказать, потому что у меня еще не было возможности просмотреть эту часть стандарта HTML5.

http://www.w3.org/TR/FileAPI/#dfn-filereader

Способ загрузки файлов PHP, очень сложно проверить информацию о файлах до или во время загрузки файла (поскольку файл загружен до того, как ваш код даже загрузится).

Я знаю, что на некоторых других языках (возможно, на Perl или Python) можно делать некоторые причудливые вещи, которые обрабатывают загрузку файла непосредственно с помощью скрипта (где скрипт открывает сокет и обрабатывает всю передачу), однако PHP делает это для вас и принимает любой файл от имени вашего сценария. Файл отбрасывается, если он не находится в допустимых пределах PHP, но только после того, как файл полностью загружен.

Также было реализовано несколько реализаций загрузки файлов с использованием Flash, но не являюсь кодовым кодеком ActionScript, и я тоже не могу им помочь.