Проверьте ваш PHP ini-файл, который определяет размер файла, который PHP разрешает загружать. Эти переменные важны:
- максимальный размер загружаемого файла (upload_max_filesize)
- максимальный размер данных поста (post_max_size)
- ограничение памяти (memory_limit)
Все загрузки вне этих границ будут игнорироваться или ошибаться в зависимости от ваших настроек.
Этот раздел в документации имеет лучшее резюме: http://ca3.php.net/manual/en/features.file-upload.common-pitfalls.php
РЕДАКТИРОВАТЬ: также обратите внимание, что большинство браузеров не будут отправлять загрузки размером более 2 ГБ. Эта ссылка устарела, но дает представление: http://www.motobit.com/help/scptutl/pa98.htm. У кого-нибудь есть лучший источник информации по этому вопросу?
Есть также ограничения, которые могут быть наложены сервером, например, Apache: http://httpd.apache.org/docs/2.2/mod/core.html#limitrequestbody
Чтобы действительно увидеть, что происходит, вам, вероятно, следует проверить журналы вашего веб-сервера, проверить лимит загрузки браузера (если вы используете Firefox) и попытаться выяснить, генерирует ли print_r($_FILES)
какие-либо полезные номера ошибок. Если ничего не помогает, попробуйте монитор сетевого трафика в firebug. Ключ заключается в том, чтобы определить, идет ли запрос на сервер, и выглядит ли он (включая заголовки) так. Как только вы продвинулись так далеко в цепочке, вы можете вернуться и посмотреть, как PHP обрабатывает загрузку.