Когда пользователь выбирает файл для загрузки, есть ли способ получить точный размер этого файла до начала загрузки? Я предполагаю, что это нужно сделать на стороне клиента с помощью 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, и я тоже не могу им помочь.