| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > Как узнать размер post запроса? |
| Автор: andreymir 1.9.2009, 09:39 |
| С клиента отправляется форма в формате multipart/form-data. Там приходят большие файлы ( до 100 мб). Пользователь может отменить отправку, и тогда на сервер приходит неполный запрос. Чтобы отбрасывать такие я решил сравнить хэдер Content-Length и фактический размер полученного запроса. Как в php получить размер тела запроса? |
| Автор: Ипатьев 1.9.2009, 09:58 |
| Обычно в РНР используются встроенные механизмы обработки запросов, и нужды в ручной обработке нет. |
| Автор: pizzz 1.9.2009, 10:01 | ||
На вскидку
Еще надо учесть что $v может быть массивом... |
| Автор: Ипатьев 1.9.2009, 10:06 |
| pizzz, вы точно внимательно прочитали вопрос? |
| Автор: andreymir 1.9.2009, 10:49 | ||
| ну да, например, отправилось 20 мб файла из 100, и будет в $_FILES['filedata'] бинарных данных на 20 мб. + в $_POST будут не все поля, а те, которые идут в запросе до поля filedata. Как видите, запрос получен не целиком, но то что получено парсится и передается в мой серверный скрипт. И спрашивается нафига %) ... Надо такие ситуации как-то определять и игнорировать... Это я к тому, что нужда все-таки есть. А вариант с
не подходит потому что так посчитается размер значений полей, а там ведь еще имена параметров, переводы строк и пр. в теле запрсоа. |
| Автор: Ипатьев 1.9.2009, 10:52 |
это реальная ситуация или гипотетическая? может быть, стоит почитать об этом в документации? |
| Автор: andreymir 1.9.2009, 11:23 |
| Да, тут я ошибся немного. В $_FILES['filedata'] будет $_FILES['filedata']['size'] - тут 0 $_FILES['filedata']['tmp_name'] - тут пусто $_FILES['filedata']['name'] - тут имя отправленного файла. как видите, хоть файл и не пришел (пришел не полностью), но поле с таким именем есть. |
| Автор: Ипатьев 1.9.2009, 11:32 |
| Скажите, вы читали в документации описание загрузки файлов? |
| Автор: andreymir 1.9.2009, 11:35 |
| читал |