Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: При загрузке файла не отправляется форма
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018
Помог: 0 раз(а)
Собственно, при загрузке файла через форму, размер которого превышает установленные в php.ini, поля формы не отправляются. Необходимо как-то это перехватить, чтобы вывести сообщения для пользователя, что файл слишком большой.
В логе запись создается вида, но в остольном никаких варнингов в браузере нет:
[12-Jan-2018 09:57:22 UTC] PHP Warning: POST Content-Length of 13007285 bytes exceeds the limit of 5242880 bytes in Unknown on line 0
В какую сторону копать?
Строитель
Отправлено: 12 Января, 2018 - 12:47:59
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Graf_Duku, проверяйте значение ключа error (вроде так он называется) в массиве $_FILES
Graf_Duku
Отправлено: 12 Января, 2018 - 13:23:16
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018
Помог: 0 раз(а)
Строитель пишет:
Graf_Duku, проверяйте значение ключа error (вроде так он называется) в массиве $_FILES
В том то и дело. Если попробовать прогрузить файл большего объема, то никакие значения из формы не передаются. По ощущениям страница просто обновляется и всё. Соответственно и массив $_FILES пустой.
С файлами в пределах ограничения - нет проблем.
Строитель
Отправлено: 12 Января, 2018 - 14:49:37
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Graf_Duku, а в html-форме вы передаёте скрытым атрибутом максимально допустимое значение загружаемого файла? Посмотрите, как тут описано: MAX_FILE_SIZE
Graf_Duku
Отправлено: 12 Января, 2018 - 15:23:52
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018
Помог: 0 раз(а)
Строитель пишет:
Graf_Duku, а в html-форме вы передаёте скрытым атрибутом максимально допустимое значение загружаемого файла? Посмотрите, как тут описано: MAX_FILE_SIZE
И так пробовал, и другими извращенными способами. Результат один, форма обновляется и всё.
Строитель
Отправлено: 12 Января, 2018 - 15:27:24
Участник
Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014 Откуда: Украина
Помог: 73 раз(а)
Graf_Duku, на всякий случай не помешало бы опубликовать ваш код.
Graf_Duku
Отправлено: 12 Января, 2018 - 15:53:19
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018
Помог: 0 раз(а)
Строитель пишет:
Graf_Duku, на всякий случай не помешало бы опубликовать ваш код.
Код - тестовый, но и он работает с тем же результатом. Пробовал то же самое в голом файле, без .хтаецесса и каких либо инклудов, которые могу вызвать конфликты. БЕз результатов.
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Graf_Duku пишет:
Собственно, при загрузке файла через форму, размер которого превышает установленные в php.ini, поля формы не отправляются. Необходимо как-то это перехватить, чтобы вывести сообщения для пользователя, что файл слишком большой.
В логе запись создается вида, но в остольном никаких варнингов в браузере нет:
[12-Jan-2018 09:57:22 UTC] PHP Warning: POST Content-Length of 13007285 bytes exceeds the limit of 5242880 bytes in Unknown on line 0
В какую сторону копать?
Либо увеличить post_max_size, либо валидация формы... Например: Get File Size before Uploading in JavaScript and jQuery (Добавление)
Этот "неперехватываемый" warning - не из-за максимального размера файла, а из-за максимального объема передаваемых через POST
Graf_Duku
Отправлено: 13 Января, 2018 - 09:16:05
Новичок
Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018
Помог: 0 раз(а)
Sail пишет:
Graf_Duku пишет:
Собственно, при загрузке файла через форму, размер которого превышает установленные в php.ini, поля формы не отправляются. Необходимо как-то это перехватить, чтобы вывести сообщения для пользователя, что файл слишком большой.
В логе запись создается вида, но в остольном никаких варнингов в браузере нет:
[12-Jan-2018 09:57:22 UTC] PHP Warning: POST Content-Length of 13007285 bytes exceeds the limit of 5242880 bytes in Unknown on line 0
В какую сторону копать?
Либо увеличить post_max_size, либо валидация формы... Например: Get File Size before Uploading in JavaScript and jQuery (Добавление)
Этот "неперехватываемый" warning - не из-за максимального размера файла, а из-за максимального объема передаваемых через POST
Тоесть, это такая механика при обработке загрузки файлов через пост у пхп?
Спасибо за помощь, очень дельный совет. Хватало бы сообщений, кинул бы "спасибо", но увы...
Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014
Помог: 57 раз(а)
Graf_Duku пишет:
Тоесть, это такая механика при обработке загрузки файлов через пост у пхп?
Файл - лишь часть данных, передаваемых через POST.
Поэтому в мануале и пишут, что post_max_size должно быть больше значения upload_max_filesize.
Есть ещё функция error_get_last(), которая в данном случае вернет, например:
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.