Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как узнать размер post запроса? 
:(
    Опции темы
andreymir
Дата 1.9.2009, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.7.2009

Репутация: нет
Всего: нет



С клиента отправляется форма в формате multipart/form-data. Там приходят большие файлы ( до 100 мб). Пользователь может отменить отправку, и тогда на сервер приходит неполный запрос. Чтобы отбрасывать такие я решил сравнить хэдер Content-Length и фактический размер полученного запроса. Как в php получить размер тела запроса?
PM MAIL   Вверх
Ипатьев
Дата 1.9.2009, 09:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Обычно в РНР используются встроенные механизмы обработки запросов, и нужды в ручной обработке нет.
PM MAIL   Вверх
pizzz
Дата 1.9.2009, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 14.12.2008
Где: Омск

Репутация: 6
Всего: 8



На вскидку 
Код

<?php

$total = 0;
foreach ($_POST AS $v) {
    $total += strlen($v);
}

?>


Еще надо учесть что $v может быть массивом...
--------------------
Спасибо много, жмем кнопку репутация.  Извините меня за орфографические ошибки, я стараюсь не ошибаться, а они все равно просачиваются гады.     
PM MAIL ICQ   Вверх
Ипатьев
Дата 1.9.2009, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



pizzz, вы точно внимательно прочитали вопрос?
PM MAIL   Вверх
andreymir
Дата 1.9.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.7.2009

Репутация: нет
Всего: нет



ну да, например, отправилось 20 мб файла из 100, и будет в $_FILES['filedata'] бинарных данных на 20 мб. + в $_POST будут не все поля, а те, которые идут в запросе до поля filedata. Как видите, запрос получен не целиком, но то что получено парсится и передается в мой серверный скрипт. И спрашивается нафига %) ... Надо такие ситуации как-то определять и игнорировать... Это я к тому, что нужда все-таки есть.

А вариант с 
Код

foreach ($_POST AS $v) {
    $total += strlen($v);

не подходит потому что так посчитается размер значений полей, а там ведь еще имена параметров, переводы строк и пр. в теле запрсоа.


Это сообщение отредактировал(а) andreymir - 1.9.2009, 10:52
PM MAIL   Вверх
Ипатьев
Дата 1.9.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Цитата(andreymir @  1.9.2009,  10:49 Найти цитируемый пост)
и будет в $_FILES['filedata'] бинарных данных на 20 мб.

это реальная ситуация или гипотетическая?

Цитата(andreymir @  1.9.2009,  10:49 Найти цитируемый пост)
Надо такие ситуации как-то определять и игнорировать. 

может быть, стоит почитать об этом в документации?
PM MAIL   Вверх
andreymir
Дата 1.9.2009, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.7.2009

Репутация: нет
Всего: нет



Да, тут я ошибся немного. В $_FILES['filedata'] будет

$_FILES['filedata']['size'] - тут 0
$_FILES['filedata']['tmp_name'] - тут пусто
$_FILES['filedata']['name'] - тут имя отправленного файла.

как видите, хоть файл и не пришел (пришел не полностью), но поле с таким именем есть.
PM MAIL   Вверх
Ипатьев
Дата 1.9.2009, 11:32 (ссылка)    | (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Скажите, вы читали в документации описание загрузки файлов?
PM MAIL   Вверх
andreymir
Дата 1.9.2009, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 5
Регистрация: 15.7.2009

Репутация: нет
Всего: нет



читал smile но там ничего не сказано, про то что пользователь может отменить загрузку файла :\
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1139 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.