Проблемки с массивом $_FILES.

  • Автор темы Nicolas Prof
  • Дата начала

Nicolas Prof

Guest
Проблемки с массивом $_FILES.

Возникла небольшая проблемка по обработке загрузки файлов на сервер пользователями. А именно на этапе проверки размера:
Вот код:
PHP:
if ($_FILES['userfile']['size']<=1000000){...}
Если присылаю файл размером меньше 1000000 байт, все нормально
Если файл больше чем 1000000 байт, к примеру 1600000 байт, то тоже нормально, на else стоит код который уведомляет пользователя что файл больше допустимого.

Но вот...
Если файл к примеру 3200000 байт или 6100000 байт(это размеры файлов, которые я проверил не чаено), то все работает не так как нужно.
Файл конечно не перемещается в папку(я перемещаю все файлы в папку uploads), но код mysql выполняется. Как такое может быть, if не должен же выполняться. Белеберда какая-то получается ;)
 

SelenIT

IT-лунатик :)
3,2 МБ - это больше, чем стандартный UPLOAD_MAX_FILESIZE. Проверь значение $_FILES['userfile']['error'].
 

Nicolas Prof

Guest
SelenIT
Совершенно верно, что-то не подумал посмотреть php.ini, хотя я смотрел, но не туда ;).
post_max_size = 8M хе хе хе

Теперь все понятно.... но тогда хорошо, но почему тогда код выполняется, больше ну и пусть себе больше, а в if все же конструкция ограничивающая такое хулиганство...

И еще как с этим бороться!

-~{}~ 14.03.05 00:50:

$_FILES['userfile']['error'] выдает 1.
То есть означает что размер файла превышает upload_max_filesize

Так что? if построить на $_FILES['userfile']['error']

Ну в стиле
PHP:
if ($_FILES['userfile']['error']!=1){...}
 

Nicolas Prof

Guest
SelenIT
Спасибо за быструю помощь...
Весьма благодарен :)
 
Сверху