|
|
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Передаю файл аяксом через formData.append и следом за ним какую-нибудь инфу в таком же поле... Или перед ним, без разницы. Так вот, если файл превышает размеры, установленные сервером ($headers['Content-Length'] функционирует, кстати), то ПОСТ-информация не передается. Что такое, я не понимаю!? © Сова ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 02:44 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Shitbox2, потому и не передается, что превышен разрешенный сервером размер. в вашем же вопросе и ответ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 05:48 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Ну так это же для файлов, нет? А почему тогда GET работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 15:36 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
И как лучше поступить если вместе с файлом могут посылаться, например, текстовые данные для обновления. Тогда они просто пропадут... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 15:42 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
По большому счету, какая разница... В любом случае, произошла ошибка загрузки. Или вы хотите гарантировано передать мелкие данные, а файл - как попрет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 16:06 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Ага, именно так! Сбой в загрузке файла не должен препятствовать передаче остальных файлов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 16:17 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
За два раза отправляйте. Мелкоту аяксом отослать, а после ответа сервера приступить к загрузке большого файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 16:37 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Не так все просто... В мелкоту так же входят управляющие команды добавить/обновить. Поэтому на два запроса разбивать нельзя иначе кто-то пришлет команду добавить, а следом за ней кто-то другой запустит файл на обновление. Можно, конечно, делать проверки по АйПи, но вариант явно не самый хороший. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 17:04 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Верно. Сессии гораздо надежнее. + пересмотреть алгоритм в сторону блокировок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 17:10 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Хорошо. Пусть это будет способ №1. Запишем) Теперь можно вернуться назад и подумать, нужно ли посылать все в месте. Задача универсальная. Пользователь написал что-то в форме, прикрепил к ней несколько файлов и жмет отправить. Во-первых, можно сделать проверку с помощью JS, который сразу отсеет всё неподходящее. Если же JS выключен, то форма просто не обработается. В-третьих, можно сделать как Гугл делает при написании письма. Заливает сразу же все файлы на сервер, даже если письмо не будет отправлено. А кому как подсказывает его опыт? Что лучше? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 17:23 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Shitbox2Во-первых, можно сделать проверку с помощью JS, который сразу отсеет всё неподходящее. В любом браузере размер файла яваскрипт не определит. Shitbox2Заливает сразу же все файлы на серверУ Вас же проблема с превышением квот, а не с порядком заливки. Впрочем, можете попробовать поле с файлом сделать последним в форме. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 20:40 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Ну на людей с нетскейпом, не ориентрируюсь. Если браузер старый, придется отправлять форму заново. Да, проблема с превышением квот. Но если делать как Гугл, то можно сделать в два потока. 1-сохранять сразу же файлы в папку, 2-при загрузке основной формы делать линк в БД на свжезалитый файл. 3-если форма не отправляется, файл удалять через некоторое время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.11.2012, 23:52 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
авторВ любом браузере размер файла яваскрипт не определит. в html 5 может и можно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2012, 02:23 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Shitbox2Да, проблема с превышением квот. Но если делать как ГуглНе думаю, что Гугл ограничивает квоты малыми значениями. Да, еще не понятно, почему нельзя увеличить до адекватных значений квоты на хостинге. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.12.2012, 12:44 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Мало ли, хостинг не позволяет... Или человек хочет залить 150 Мб архив... или фильм 4 ГБ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 01:22 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Да и гугл ограничивает 20 МБ, кажется. Не помню, писал или нет, если файл превышает установленное на сервере значение, то в $_FILES соответствующая ошибка, почему-то не возвращается, как и сам этот массив. А узнать, что было превышение можно только по headers['Content-Length'] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 01:26 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Shitbox2если файл превышает установленное на сервере значение, то в $_FILES соответствующая ошибка, почему-то не возвращается, как и сам этот массив.А вот это уже, кажется, совсем неправильное поведение. Версии используемого ПО и ОС не озвучите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 01:41 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Хотя, аякс же... С клиента точно все уходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 01:43 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
ПО и виртуальный сервера Макхостовские: http://soft.mchost.ru/info.php ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 02:02 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Да, уходит точно, 100 раз проверял. $_POST и $_FILES пустые, в заголовке: Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Про натройки ПХП. На сервере сейчас стоит первый вариант: PHP 5.2 в режиме модуля Apache (по умолчанию) PHP 5.2 в режиме CGI PHP 5.3 в режиме CGI PHP 5.4 в режиме CGI Стоит ли его менять на версию 5.3 или 5.4? Без понятия чем отличаются модуль Апача от CGI, т.е. слышал, что CGI более гибкое и вроде помедленнее... Намного ли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 02:48 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Shitbox2Стоит ли его менять на версию 5.3 или 5.4?От требуемого функционала зависит и от используемых функций (в 5.4 кое-что выпилили). Впрочем, рано или поздно хостеры все равно откажутся от поддержки 5.2, о чем пока весьма ненавязчиво намекают. Shitbox2Без понятия чем отличаются модуль Апача от CGIОтличий много. Например, в способе управления настройками PHP, в поддержке HTTP-авторизации. Впрочем, главное отличие в способе взаимодействия вебсервера и PHP. Кроме того, чистый CGI сейчас вряд-ли где-то используется. Он действительно слишком медленный, так как требует загрузки в память всего PHP и его модулей непосредственно при вызове скрипта. Обычно используется какой-то из многочисленных вариантов fast-cgi и нередко с suexec (запуск скрипта в контексте пользователя, а не вебсервера) и suphp (позволяет читать настройки из php.ini, который лежит непосредственно в директории скрипта). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 03:04 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Возвращаясь к теме, раздумывал тут, раздумывал... Нужно на Гугл ориентироваться. Отправка файлов вместе с формой — вчерашний день. В том, чтобы файл начал загружаться сразу же при добавлении есть преимущество: пользователь параллельно может заполнять форму, а к моменту отправки, файл наверняка уже загрузится; так же можно заранее узнать от сервера об ошибке загрузки, если js не обработает. Пока не смог придумать ситуации, когда отправка файла одновременно с формой была бы обязательной. В общем, одновременную отправку стоит убрать как функцию. Остается разобраться с управляющими параметрами, а это «добавить» и «обновить», которые нужно отправлять вместе с файлом. Других сценариев так же не смог обнаружить (подскажите, если есть). В итоге появляется новая проблема, как привязать форму к загруженным ранее файлам. Тут можно использовать сессии, как выше советовали, но вполне может быть ситуация если пользователь заполняет одновременно две формы (напр., два письма) с разными файлами и они не должны перемешиваться. Напрашивается вариант отсылать вместе с файлом какой-нибудь id формы. Причем, если такой id уже существует то файл прикрепляется к имеющейся записи, если нет, создается новая, которая удаляется, через какое-то время, если форма не была отправлена. Есть лучшие варианты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 15:59 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Shitbox2, Ваше решение как-то связано с бизнес-логикой, кажется. Думаю, на этом этапе лучше абстрагироваться от принципов выбора действия "добавить или заменить" и сосредоточиться на привязке файла и формы. Получится более гибко. Перед отправкой файла делаете дополнительный запрос к серверу для назначения уникального имени или айди загружаемого файла. Собсна, под этим уникальным идентификатором и сохраняете файл. Это же имя или айди передаете в форму управления для манипуляций. Сам по себе скрипт обработки файла может быть выполнен автоматически по окончании загрузки большого файла, или если файл загрузился быстро, дополнительным запросом от клиента. Ну, это по ситуации. В общем то, в таком сценарии не вижу никакой привязки к к-ву открытых пользователем форм. Остается разобрать варианты, когда пользователь не дождавшись окончания загрузки закроет форму. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 16:23 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Тогда получается так: Пользователь выбрал файлы (загрузил их в очередь) или отправил форму без файлов, после чего серверу посылается запрос, в ответ на который он создает запись для будущей формы и возвращает ее id. При получении клиентом, id сохраняется и все последующие события (отправка формы или добавление еще одного файла) происходят уже по имеющемуся id. Если нужна замена, значит клиент просто использует id заменяемого элемента. Да, вроде все гладко, даже не придумать, когда такое не будет работать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.12.2012, 16:44 |
|
||
|
Почему отваливается POST при загрузке слишком большого файла?
|
|||
|---|---|---|---|
|
#18+
Небольшая загвоздка. Начинаю загрузку файла, но перед этим скрипт должен вернуть id строки в БД. Можно ли это сделать в одном скрипте за один вызов? Иначе смогу передать ответ только после загрузки файла и окончания работы скрипта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2012, 09:39 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=38061482&tid=1464347]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 207ms |
| total: | 349ms |

| 0 / 0 |
