PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: При загрузке файла через форму, размер которого превышает установленные в php.ini, поля формы не отправляются
Graf_Duku
Отправлено: 12 Января, 2018 - 12:10:46
Post Id


Новичок


Покинул форум
Сообщений всего: 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

В какую сторону копать?
 
 Top
Строитель Модератор
Отправлено: 12 Января, 2018 - 12:47:59
Post Id



Участник


Покинул форум
Сообщений всего: 1296
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 52 раз(а)




Graf_Duku, проверяйте значение ключа error (вроде так он называется) в массиве $_FILES
 
 Top
Graf_Duku
Отправлено: 12 Января, 2018 - 13:23:16
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Строитель пишет:
Graf_Duku, проверяйте значение ключа error (вроде так он называется) в массиве $_FILES


В том то и дело. Если попробовать прогрузить файл большего объема, то никакие значения из формы не передаются. По ощущениям страница просто обновляется и всё. Соответственно и массив $_FILES пустой.

С файлами в пределах ограничения - нет проблем.
 
 Top
Строитель Модератор
Отправлено: 12 Января, 2018 - 14:49:37
Post Id



Участник


Покинул форум
Сообщений всего: 1296
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 52 раз(а)




Graf_Duku, а в html-форме вы передаёте скрытым атрибутом максимально допустимое значение загружаемого файла? Посмотрите, как тут описано: MAX_FILE_SIZE
 
 Top
Graf_Duku
Отправлено: 12 Января, 2018 - 15:23:52
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Строитель пишет:
Graf_Duku, а в html-форме вы передаёте скрытым атрибутом максимально допустимое значение загружаемого файла? Посмотрите, как тут описано: MAX_FILE_SIZE


И так пробовал, и другими извращенными способами. Результат один, форма обновляется и всё.
 
 Top
Строитель Модератор
Отправлено: 12 Января, 2018 - 15:27:24
Post Id



Участник


Покинул форум
Сообщений всего: 1296
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 52 раз(а)




Graf_Duku, на всякий случай не помешало бы опубликовать ваш код.
 
 Top
Graf_Duku
Отправлено: 12 Января, 2018 - 15:53:19
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Строитель пишет:
Graf_Duku, на всякий случай не помешало бы опубликовать ваш код.


Код - тестовый, но и он работает с тем же результатом. Пробовал то же самое в голом файле, без .хтаецесса и каких либо инклудов, которые могу вызвать конфликты. БЕз результатов.

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $descrip_text = (isset($_POST["add_doc-descrip"])) ? $_POST["add_doc-descrip"] : "";
  4.  
  5. if (isset($_POST["add_doc-descrip"])){
  6.    
  7.         var_dump($_FILES);
  8.    
  9. }
  10. ?>
  11. <form action="" method="POST" name="add_doc-form" enctype="multipart/form-data">
  12.     <fieldset>
  13.         <legend>Загрузить новый документ в базу:</legend>
  14.  
  15.         <input type="hidden" name="MAX_FILE_SIZE" value="50000">
  16.         <p><textarea name="add_doc-descrip" id="add_doc-descrip" rows="3"><?=$descrip_text?></textarea></p>
  17.         <p class="pos_c"><input type="file" name="add_doc-file" id="add_doc-file"></p>
  18.         <p class="pos_c"><input type="submit" value="Добавить"></p>
  19.        
  20.     </fieldset>
  21. </form>
  22.  
  23.  

(Отредактировано автором: 12 Января, 2018 - 15:53:49)

 
 Top
Sail
Отправлено: 12 Января, 2018 - 22:59:40
Post Id



Участник


Покинул форум
Сообщений всего: 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
 
 Top
Graf_Duku
Отправлено: 13 Января, 2018 - 09:16:05
Post Id


Новичок


Покинул форум
Сообщений всего: 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


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

Спасибо за помощь, очень дельный совет. Хватало бы сообщений, кинул бы "спасибо", но увы...

(Отредактировано автором: 13 Января, 2018 - 14:07:04)

 
 Top
Sail
Отправлено: 13 Января, 2018 - 17:24:43
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Graf_Duku пишет:
Тоесть, это такая механика при обработке загрузки файлов через пост у пхп?

Файл - лишь часть данных, передаваемых через POST.
Поэтому в мануале и пишут, что post_max_size должно быть больше значения upload_max_filesize.
Есть ещё функция error_get_last(), которая в данном случае вернет, например:
CODE (htmlphp):
скопировать код в буфер обмена
  1. array (size=4)
  2.   'type' => int 2
  3.   'message' => string 'POST Content-Length of 130291522 bytes exceeds the limit of 83886080 bytes' (length=74)
  4.   'file' => string 'Unknown' (length=7)
  5.   'line' => int 0

Graf_Duku пишет:
Спасибо за помощь, очень дельный совет. Хватало бы сообщений, кинул бы "спасибо", но увы...

К этому действию можно вернуться после достижения ценза Хорошо
 
 Top
Graf_Duku
Отправлено: 14 Января, 2018 - 10:50:39
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Sail пишет:
Graf_Duku пишет:
Тоесть, это такая механика при обработке загрузки файлов через пост у пхп?

Файл - лишь часть данных, передаваемых через POST.
Поэтому в мануале и пишут, что post_max_size должно быть больше значения upload_max_filesize.


Цитата:
Если размер POST-данных больше чем post_max_size, суперглобальные переменные $_POST и $_FILES будут пустыми.


Говорила мне мама - "читай мануал...".

В итоге выходит, что страница не перезагружалась, а происходила штатная передача - "ничего", а "ничего" - не обработать. Всем спасибо Подмигивание
 
 Top
Sail
Отправлено: 14 Января, 2018 - 15:37:41
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




Graf_Duku пишет:
В итоге выходит, что страница не перезагружалась, а происходила штатная передача - "ничего", а "ничего" - не обработать.

Перезагружалась.
 
 Top
Graf_Duku
Отправлено: 14 Января, 2018 - 19:14:31
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Янв. 2018  


Помог: 0 раз(а)




Sail пишет:
Graf_Duku пишет:
В итоге выходит, что страница не перезагружалась, а происходила штатная передача - "ничего", а "ничего" - не обработать.

Перезагружалась.


Печаль...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB