powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Почему отваливается POST при загрузке слишком большого файла?
27 сообщений из 27, показаны все 2 страниц
Почему отваливается POST при загрузке слишком большого файла?
    #38059125
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Передаю файл аяксом через formData.append и следом за ним какую-нибудь инфу в таком же поле... Или перед ним, без разницы. Так вот, если файл превышает размеры, установленные сервером ($headers['Content-Length'] функционирует, кстати), то ПОСТ-информация не передается. Что такое, я не понимаю!? © Сова
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38059155
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2,

потому и не передается, что превышен разрешенный сервером размер.
в вашем же вопросе и ответ.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38059962
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так это же для файлов, нет? А почему тогда GET работает?
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38059984
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как лучше поступить если вместе с файлом могут посылаться, например, текстовые данные для обновления. Тогда они просто пропадут...
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060031
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По большому счету, какая разница... В любом случае, произошла ошибка загрузки. Или вы хотите гарантировано передать мелкие данные, а файл - как попрет?
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060071
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, именно так! Сбой в загрузке файла не должен препятствовать передаче остальных файлов
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060132
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
За два раза отправляйте. Мелкоту аяксом отослать, а после ответа сервера приступить к загрузке большого файла.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060204
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не так все просто... В мелкоту так же входят управляющие команды добавить/обновить. Поэтому на два запроса разбивать нельзя иначе кто-то пришлет команду добавить, а следом за ней кто-то другой запустит файл на обновление. Можно, конечно, делать проверки по АйПи, но вариант явно не самый хороший.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060221
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Верно. Сессии гораздо надежнее.
+ пересмотреть алгоритм в сторону блокировок
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060257
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо. Пусть это будет способ №1. Запишем)

Теперь можно вернуться назад и подумать, нужно ли посылать все в месте. Задача универсальная. Пользователь написал что-то в форме, прикрепил к ней несколько файлов и жмет отправить.

Во-первых, можно сделать проверку с помощью JS, который сразу отсеет всё неподходящее. Если же JS выключен, то форма просто не обработается.

В-третьих, можно сделать как Гугл делает при написании письма. Заливает сразу же все файлы на сервер, даже если письмо не будет отправлено.

А кому как подсказывает его опыт? Что лучше?
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060588
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2Во-первых, можно сделать проверку с помощью JS, который сразу отсеет всё неподходящее. В любом браузере размер файла яваскрипт не определит.
Shitbox2Заливает сразу же все файлы на серверУ Вас же проблема с превышением квот, а не с порядком заливки. Впрочем, можете попробовать поле с файлом сделать последним в форме.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060729
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну на людей с нетскейпом, не ориентрируюсь. Если браузер старый, придется отправлять форму заново.

Да, проблема с превышением квот. Но если делать как Гугл, то можно сделать в два потока. 1-сохранять сразу же файлы в папку, 2-при загрузке основной формы делать линк в БД на свжезалитый файл. 3-если форма не отправляется, файл удалять через некоторое время.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060833
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ любом браузере размер файла яваскрипт не определит.
в html 5 может и можно.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38060972
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2Да, проблема с превышением квот. Но если делать как ГуглНе думаю, что Гугл ограничивает квоты малыми значениями. Да, еще не понятно, почему нельзя увеличить до адекватных значений квоты на хостинге.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061445
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мало ли, хостинг не позволяет... Или человек хочет залить 150 Мб архив... или фильм 4 ГБ
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061448
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да и гугл ограничивает 20 МБ, кажется. Не помню, писал или нет, если файл превышает установленное на сервере значение, то в $_FILES соответствующая ошибка, почему-то не возвращается, как и сам этот массив. А узнать, что было превышение можно только по headers['Content-Length']
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061454
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2если файл превышает установленное на сервере значение, то в $_FILES соответствующая ошибка, почему-то не возвращается, как и сам этот массив.А вот это уже, кажется, совсем неправильное поведение. Версии используемого ПО и ОС не озвучите?
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061455
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя, аякс же... С клиента точно все уходит?
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061463
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПО и виртуальный сервера Макхостовские: http://soft.mchost.ru/info.php
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061479
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, уходит точно, 100 раз проверял. $_POST и $_FILES пустые, в заголовке:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Array
(
    [Host] => tamtakoe.ru
    [X-Forwarded-For] => 95.55.111.220
    [Connection] => close
    [Content-Length] => 38779923
    [Origin] => http://tamtakoe.ru
    [User-Agent] => Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11
    [Content-Type] => multipart/form-data; boundary=----WebKitFormBoundaryWdAyWPWolG8C8OeG
    [Accept] => */*
    [Referer] => http://tamtakoe.ru/damnUploaderDemo/
    [Accept-Encoding] => gzip,deflate,sdch
    [Accept-Language] => ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4
    [Accept-Charset] => windows-1251,utf-8;q=0.7,*;q=0.3
)



Про натройки ПХП. На сервере сейчас стоит первый вариант:
PHP 5.2 в режиме модуля Apache (по умолчанию)
PHP 5.2 в режиме CGI
PHP 5.3 в режиме CGI
PHP 5.4 в режиме CGI

Стоит ли его менять на версию 5.3 или 5.4? Без понятия чем отличаются модуль Апача от CGI, т.е. слышал, что CGI более гибкое и вроде помедленнее... Намного ли.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061482
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2Стоит ли его менять на версию 5.3 или 5.4?От требуемого функционала зависит и от используемых функций (в 5.4 кое-что выпилили). Впрочем, рано или поздно хостеры все равно откажутся от поддержки 5.2, о чем пока весьма ненавязчиво намекают.


Shitbox2Без понятия чем отличаются модуль Апача от CGIОтличий много. Например, в способе управления настройками PHP, в поддержке HTTP-авторизации. Впрочем, главное отличие в способе взаимодействия вебсервера и PHP. Кроме того, чистый CGI сейчас вряд-ли где-то используется. Он действительно слишком медленный, так как требует загрузки в память всего PHP и его модулей непосредственно при вызове скрипта. Обычно используется какой-то из многочисленных вариантов fast-cgi и нередко с suexec (запуск скрипта в контексте пользователя, а не вебсервера) и suphp (позволяет читать настройки из php.ini, который лежит непосредственно в директории скрипта).
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061663
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возвращаясь к теме, раздумывал тут, раздумывал... Нужно на Гугл ориентироваться. Отправка файлов вместе с формой — вчерашний день. В том, чтобы файл начал загружаться сразу же при добавлении есть преимущество: пользователь параллельно может заполнять форму, а к моменту отправки, файл наверняка уже загрузится; так же можно заранее узнать от сервера об ошибке загрузки, если js не обработает. Пока не смог придумать ситуации, когда отправка файла одновременно с формой была бы обязательной. В общем, одновременную отправку стоит убрать как функцию.

Остается разобраться с управляющими параметрами, а это «добавить» и «обновить», которые нужно отправлять вместе с файлом. Других сценариев так же не смог обнаружить (подскажите, если есть).

В итоге появляется новая проблема, как привязать форму к загруженным ранее файлам. Тут можно использовать сессии, как выше советовали, но вполне может быть ситуация если пользователь заполняет одновременно две формы (напр., два письма) с разными файлами и они не должны перемешиваться. Напрашивается вариант отсылать вместе с файлом какой-нибудь id формы. Причем, если такой id уже существует то файл прикрепляется к имеющейся записи, если нет, создается новая, которая удаляется, через какое-то время, если форма не была отправлена. Есть лучшие варианты?
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061674
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2, Ваше решение как-то связано с бизнес-логикой, кажется. Думаю, на этом этапе лучше абстрагироваться от принципов выбора действия "добавить или заменить" и сосредоточиться на привязке файла и формы. Получится более гибко.
Перед отправкой файла делаете дополнительный запрос к серверу для назначения уникального имени или айди загружаемого файла. Собсна, под этим уникальным идентификатором и сохраняете файл. Это же имя или айди передаете в форму управления для манипуляций. Сам по себе скрипт обработки файла может быть выполнен автоматически по окончании загрузки большого файла, или если файл загрузился быстро, дополнительным запросом от клиента. Ну, это по ситуации. В общем то, в таком сценарии не вижу никакой привязки к к-ву открытых пользователем форм. Остается разобрать варианты, когда пользователь не дождавшись окончания загрузки закроет форму.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38061690
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда получается так:
Пользователь выбрал файлы (загрузил их в очередь) или отправил форму без файлов, после чего серверу посылается запрос, в ответ на который он создает запись для будущей формы и возвращает ее id. При получении клиентом, id сохраняется и все последующие события (отправка формы или добавление еще одного файла) происходят уже по имеющемуся id. Если нужна замена, значит клиент просто использует id заменяемого элемента.

Да, вроде все гладко, даже не придумать, когда такое не будет работать)
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38065599
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшая загвоздка. Начинаю загрузку файла, но перед этим скрипт должен вернуть id строки в БД. Можно ли это сделать в одном скрипте за один вызов? Иначе смогу передать ответ только после загрузки файла и окончания работы скрипта
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38065646
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shitbox2в одном скрипте за один вызовСомнительно что получится. По сути, Вам нужно получить (или зарезервировать за экземпляром формы) ID до отправки файла. В то же время, успех загрузки файла Вам не важен. Следовательно, файл можно отправлять в последнюю очередь (или вообще не отправлять, как в случае с ошибкой загрузки). Думаю, самым простым будет отдельный аякс-запрос, который заставит сервер сгенерить ID строки БД. Этот ID возвращается клиенту и прописывается в скрытые поля форм для мелких записей и для файла. Разумеется, в целях безопасности на сервере потребуется проверка соответствия ID и пользователя, мож еще чего.
...
Рейтинг: 0 / 0
Почему отваливается POST при загрузке слишком большого файла?
    #38065659
Shitbox2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Собственно, это единственное, что остается, если нет других путей. Сделаю так
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Почему отваливается POST при загрузке слишком большого файла?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]