Проверка размера загрузки файла

Валидации – большая проблема, так как если я проверяю в php, у нее есть все функции и т. Д. Мне нужно заставить ее работать. Но она сначала загружает файл во временное место, а затем проверяет, что отстой. Если кто-то загружает файл в 100mb, он должен ждать времени, чтобы не получить никаких ошибок, но только некоторые внутренние php висят, вися страница.

Один путь: JS

//file is id of input file alert(document.getElementById('file').files[0].fileSize); 

Это работает в firefox, safari, chrome, я тоже думаю. NOT: В opera, конечно же, IE, но IE можно позаботиться о размере файла ActiveX, но Opera я все еще застрял. Настолько красиво непригодным, так или иначе, чтобы обойти это?

Во-вторых: я думал, могу ли я дать настраиваемое оповещение php или что-то, установив максимальный размер в php.ini или что-то в этом роде, что могло бы легко решить проблему. То, что я ищу.

ДРУГОЕ ОБНОВЛЕНИЕ:

Я обманывал себя с помощью rapidshare, чтобы понять, что происходит, я понял, что даже они используют проверку размера файла javascript: P Теперь это отлично работает с firefox, а другие, как я уже сказал, даже IE, поскольку у него есть задний способ ActiveX, но Opera является жертвой: P Они не могут дать фэнтезийную ошибку JavaScript в этом случае. Но у них есть откат назад, проверка на стороне сервера занимает несколько секунд, негладкая, но в конце концов она показывает небольшую ошибку.

Так что просто нужно узнать эту часть на стороне сервера сейчас без загрузки, и, на мой взгляд, только один способ сделать это:

  1. Некоторый внутренний размер php max увеличил ошибку, которую я могу настроить или запустить некоторый скрипт, чтобы узнать, достигнут ли максимальный размер или превышен ли POST или что-то в этом роде. // НЕТ ИДЕИ ОБ ЭТОМ. Надеюсь, какой-то серверный парень может помочь 🙂 Я думаю, что это то, что решит его, если кто-нибудь из гуру php-сервера здесь.

Спасибо и с уважением. Пожалуйста помоги. 🙂

Вот плагин, который использует flash + javascript (MooTools) для загрузки файлов. Потенциал этого плагина заключается в том, что он поддерживается, и вы можете его использовать. Он может ограничивать максимальный размер и т. Д. И проверять информацию о файлах перед загрузкой. Кроме того, есть пример для бэкэнд с использованием PHP о том, как файлы обрабатываются после его загрузки.

Fancyupload

Особенности

  • Выбор и загрузка нескольких файлов
  • Фильтровать файлы по типу в
  • dialog Много возможных событий для добавления собственного поведения
  • Показывать и фильтровать полезную информацию о файле до начала загрузки
  • Ограничить загрузку по количеству файлов, типу или размеру
  • Независимо от платформы и сервера, требуется только Flash9 + (> 95% проникновения), которая работает во всех браузерах с установленным ею

Вот плагин jQuery, который делает то же самое, что и MooTools:

Uploadify

Вы можете установить максимальный размер, разрешенный в PHP, Javascript и Apache.

Используйте Javascript для самых удобных для пользователя, так как он немедленно оповещает пользователя.

Используйте PHP рядом с простейшим способом проверки после загрузки.

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

Вы можете использовать серверное решение.

Используйте $_SERVER['CONTENT_LENGTH'] после попытки загрузки файла. Эта переменная возвращает размер загруженного файла, даже если загрузка не удалась.

 if(isset($_SERVER['CONTENT_LENGTH']) && $_SERVER['CONTENT_LENGTH']>2097152) $error = 'Upload FAILED, file is too large !'; 

Этот метод отлично работает для всех случаев ошибок при загрузке файла, даже если размер файла больше MAX_FILE_SIZE , upload_max_filesize или post_max_size (из php.ini)

Для получения дополнительных функций вы можете попробовать http://valums.com/ajax-upload/