-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Отправка файлов через Curl #226
Comments
Думал я в master вносил это исправление давным давно, видимо хотел сделать, забыл, а запомнил что проблема решена. |
Нормальный вариант в принципе. Без разбивки по версиям более элегантное вряд ли что нить придумается. Тогда уж если версии проверять, можно и в |
И еще небольшое замечание по отправке файлов - если отправлять файлы через |
И еще что-то не то с
У меня почему-то
На выходе:
|
Создал #227 - Pull Request с исправлениями. На 5.4 правда проверить сейчас не могу, т.к. нет под рукой, но, вроде бы должно все работать без изменений. @DeryabinSergey Про $body дублирующемся в POST - подозреваю что есть какая-то настройка в php на этот случай. У меня такой кейс не воспроизводится. Кажется, когда-то давно даже с этим сталкивался, но пока не вспомнил что это. |
@AlexeyDsov а ты на какой версии пыха сидишь? |
5.5, все еще грешу что дело в настройке php. Или, кстати, веб сервера. |
У меня на nginx крутится все. Перекопал уже ВСЕ параметры в php.ini - ничего подходящего не нашел |
Посмотрел настройки php.ini и тоже не нашел. Не знаю почему оно так сейчас, но помню такой случай. Впринципе то сильно важно что оно немного странно работает?
Не забыть после последнего символа (0) нажать ввод. И адрес хоста и ip/port для telnet нужно ,конечно же, соотвествующие подставить. Скрипт тестовый должен поймать только боди (3-ий элемент массива). У меня так:
Соотвественно в вашем случае должно еще и в пером оказаться |
В принципе все логично отрабатывает:
Но если я добавлю в заголовок
|
Забавно, но у меня такой вариант все так же только в body ловит не смотря на добавленны заголовок Но вот если само тело заменить на: |
Точно так же у меня на фронте, где PHP 5.2.X А на локалке на 5.3 и 5.6 как описываю.
Мне кажется у меня более логичное поведение ) Но что этот один тест не отрабатывает меня в принципе особо пока не напрягает |
И вот еще что, это только для POST, при скажем PUT запросе такого тоже нет
|
В случае PUT у меня скрипт не ловит в POST ничего даже если передать body |
А еще такой момент, у нас 9 DAO воркеров, в тесте у меня вываливает 8 ошибок:
Они не перехватываются что-ли или почему так? |
Спасибо. Мержите уже скорее ))) И еще хотелось бы к
Не уверен, насчет queryString но body нужен как минимум
|
Согласен. Так было и раньше. Я ими не пользовался никогда толком и когда правил CurlHttpClient то, вроде бы не трогал. Для меня они все так же экзотика :) Если есть видение как оно должно быть - можно поправить. Но у меня виденья нету. Имеющиеся вопросы к другим методам:
Эксперимент с telnet'ом описанный выше показал что мой локальный вебсервер с какими-то более менее дефолтными настройками при PUT body на POST параметры не бьёт. Но должен ли считаться с этим ограничением CurlHttpClient? Я не уверен, т.к., думаю, вебсервер можно настроить и что б бил на параметры body любого типа запроса. |
У меня видения как такового тоже нет, но беглый просмотр API Google (календарь первым попался) https://developers.google.com/google-apps/calendar/v3/reference/acl/update показывает что GET параметры в URL нужны, там просто URL формируется уже в зависимости от параметров, а так в принципе те же параметры могут просто явно передаваться. POST параметров быть не должно и не может, т. к. смысла в них нет, они все равно не распарсятся в массив _POST на принимающей стороне, а должно быть либо BODY либо ничего. Т.к. таких запросах гоняют или XML или JSON, как правило. Готов постоять послушать другие мнения, или же подождать пока кому нить не понадобится эта реализация |
Исходя из того что я выше написал и @DeryabinSergey, я б предложил бы что стоит сделать поведение всех не GET методов таким же как поведение при POST. А ставить body или post параметры оставить на усмотрение того кто будет использовать. |
@AlexeyDsov прошло 6 лет ) Добавил проверку тревисом и такая же ерунда - BODY подставляется в POST |
Такой уже наверное больше философский вопрос, а надо ли поддерживать такие обертки как |
У нас сейчас в
CurlHttpClient
при отправке файлов массивчик с файликами присоединяется к POST и при этом проверяется что бы в остальных значениях не было в начале собаки.Что имеем сейчас, появился параметр
CURLOPT_SAFE_UPLOAD
:И про
CURLOPT_POSTFIELDS
:Смотреть здесь: http://ru.php.net/manual/en/function.curl-setopt.php (именно на английском! в русккой версии документации не упоминается)
Сам же http://ru.php.net/manual/en/class.curlfile.php идет только с версии 5.5.0 Хотя есть еще такие кто на 5.2.хх сидят - сам вот только переползаю, очень трудоемкий процесс получается )))
Какое можно элегантное решение придумать?
The text was updated successfully, but these errors were encountered: