Обучение/Помощь новичкам | CURL отдать файл
Тема закрыта by
Mr.Max
Причина: ()))
Причина: ()))
Как с помощью курла отдать файл http://wwww.kinogo.cc/145cb6d5eb97c3180306c3038c6d4fc6:2019110516/films/hq/kolett-2018.flv на скачку ? Другие варики через header не конают.
Mr.Max , Продемонстрируем curl запрос на примере, с учетом следующих ограничений. 1. Файл надо загрузить методом POST 2. Необходима авторизация 3. На сервере установлен сертификат ssl Способ 1, командная строка: Загрузка файла непосредственно через командную строку выглядит так: Разберем подробнее: -X — указываем метод POST -u — логин и пароль пользователя —insecure — при работе по https часто приходится тестировать в тестовом окружении где не стоит проверенный сертификат. Этой опцией отказываемся от проверки. Чтобы ещё более подробно узнать о тонкостях команды, используйте curl —help Способ 2, PHP: Продемонстрируем как загрузить файл Практически всё прокомментировано в коде, однако отмечу функцию curl_file_create , один сервер постоянно ругался что файл как-то не так указан или отсутсвует. Это вылечилось добавлением мим типа, т.е. функция curl_file_create создает дополнительные заголовки для корректной отправки файла. Способ 3, Python : Наконец дошли до python, здесь воспользуемя отличной библиотекой requests В указанном примере открываем файл в режиме бинарного чтения, и дальше сразу делаем запроc. В запросе указаны параметры авторизации, метод, страница и файл. Если файлов несколько — просто расширьте словарь files. Всё просто, удачи с curl!
apache
curl -i -u user:password -X POST --form datafile=@/path/to/some/file.txt https://localhost:443/page --insecure php
// очень полезно предварительно сделать проверку на наличие библиотеки curl для php if (!in_array ('curl', get_loaded_extensions())) { exit("CURL is NOT installed on this server"); } $ch = curl_init(); //указываем url адрес на сервере curl_setopt($ch, CURLOPT_URL, 'https://localhost:443/page'); // чтобы возвращало curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // указываем метод POST curl_setopt($ch, CURLOPT_POST, 1); // этот параметр для указания логина и пароля curl_setopt($ch, CURLOPT_USERPWD, "login:password"); curl_setopt($ch, CURLOPT_POSTFIELDS, [ 'some_more_data' => 'здесь можно передать дополнительные параметры, например если эмулируется отправка формы', 'datafile' => curl_file_create('/path/to/file.txt' , mime_content_type($path_to_file), basename('/path/to/file')) ] ); // проверка peer для ssl отключена, смотрите также CURLOPT_SSL_VERIFYHOST для полного игнорирования ssl сертификата curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // все опции выставлены - выполняем запрос $result = curl_exec($ch); // распечатываем ответ сервера var_dump($result); // закрываем соединение curl_close($ch); php
import requests auth = ('user', 'password') data = [ ('some_more_field', 'some_field_data') ] # curl request files = {'datafile': open('/path/to/file.txt', 'rb')} r = requests.post('https://localhost:443/page', files=files, data=data, auth=auth) print(r.text) Toruz (05.11.2019 в 13:08) Mr.Max , Продемонстрируем curl запрос на примере, с учетом следующих ограничений. 1. Файл надо загрузить методом POST 2. Необходима авторизация 3. На сервере установлен сертификат ssl Способ 1, командная строка: Загрузка файла непосредственно через командную строку выглядит так: Разберем подробнее: -X — указываем метод POST -u — логин и пароль пользователя —insecure — при работе по https часто приходится тестировать в тестовом окружении где не стоит проверенный сертификат. Этой опцией отказываемся от проверки. Чтобы ещё более подробно узнать о тонкостях команды, используйте curl —help Способ 2, PHP: Продемонстрируем как загрузить файл Практически всё прокомментировано в коде, однако отмечу функцию curl_file_create , один сервер постоянно ругался что файл как-то не так указан или отсутсвует. Это вылечилось добавлением мим типа, т.е. функция curl_file_create создает дополнительные заголовки для корректной отправки файла. Способ 3, Python : Наконец дошли до python, здесь воспользуемя отличной библиотекой requests В указанном примере открываем файл в режиме бинарного чтения, и дальше сразу делаем запроc. В запросе указаны параметры авторизации, метод, страница и файл. Если файлов несколько — просто расширьте словарь files. Всё просто, удачи с curl!
ты элементарный запрос curl на отправку post данных написал, и то усложнил его более некуда.) ему наоборот надо с ОТДАТЬ НА СКАЧКУ, не на ЗАГРУЗКУ.) будьте внимательны, когда пытаетесь сумничать, смешно выглядит
apache
curl -i -u user:password -X POST --form datafile=@/path/to/some/file.txt https://localhost:443/page --insecure php
// очень полезно предварительно сделать проверку на наличие библиотеки curl для php if (!in_array ('curl', get_loaded_extensions())) { exit("CURL is NOT installed on this server"); } $ch = curl_init(); //указываем url адрес на сервере curl_setopt($ch, CURLOPT_URL, 'https://localhost:443/page'); // чтобы возвращало curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // указываем метод POST curl_setopt($ch, CURLOPT_POST, 1); // этот параметр для указания логина и пароля curl_setopt($ch, CURLOPT_USERPWD, "login:password"); curl_setopt($ch, CURLOPT_POSTFIELDS, [ 'some_more_data' => 'здесь можно передать дополнительные параметры, например если эмулируется отправка формы', 'datafile' => curl_file_create('/path/to/file.txt' , mime_content_type($path_to_file), basename('/path/to/file')) ] ); // проверка peer для ssl отключена, смотрите также CURLOPT_SSL_VERIFYHOST для полного игнорирования ssl сертификата curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); // все опции выставлены - выполняем запрос $result = curl_exec($ch); // распечатываем ответ сервера var_dump($result); // закрываем соединение curl_close($ch); php
import requests auth = ('user', 'password') data = [ ('some_more_field', 'some_field_data') ] # curl request files = {'datafile': open('/path/to/file.txt', 'rb')} r = requests.post('https://localhost:443/page', files=files, data=data, auth=auth) print(r.text) Mr.Max (04.11.2019 в 13:34)
Как с помощью курла отдать файл http://wwww.kinogo.cc/145cb6d5eb97c3180306c3038c6d4fc6:2019110516/films/hq/kolett-2018.flv на скачку ? Другие варики через header не конают.
Как с помощью курла отдать файл http://wwww.kinogo.cc/145cb6d5eb97c3180306c3038c6d4fc6:2019110516/films/hq/kolett-2018.flv на скачку ? Другие варики через header не конают.
донор блокает заголовки?
в php://output поток транслируй отправку данных курла
Как вариант возможно прокатит, но вообще что за извращенство ты придумал?
Хочешь отдать файл от своего сервера, проксируй его, не хочешь нагружать свой сервер, отдавай с донора, проксировать на уровне nginx если что
Как вариант возможно прокатит, но вообще что за извращенство ты придумал?
Хочешь отдать файл от своего сервера, проксируй его, не хочешь нагружать свой сервер, отдавай с донора, проксировать на уровне nginx если что
d1nka (05.11.2019 в 13:34)
донор блокает заголовки?
донор блокает заголовки?
Там привязка по ip не проходит никак . Только курлом как то думаю можно просунуть .
System (05.11.2019 в 13:55)
в php://output поток транслируй отправку данных курла
Как вариант возможно прокатит, но вообще что за извращенство ты придумал?
Хочешь отдать файл от своего сервера, проксируй его, не хочешь нагружать свой сервер, отдавай с донора, проксировать на уровне nginx если что
в php://output поток транслируй отправку данных курла
Как вариант возможно прокатит, но вообще что за извращенство ты придумал?
Хочешь отдать файл от своего сервера, проксируй его, не хочешь нагружать свой сервер, отдавай с донора, проксировать на уровне nginx если что
Так донор блочит . Я бы с радостью . Есть только тор который можно заюзать
________
посл. ред. 06.11.2019 в 00:55; всего 1 раз(а); by Mr.Max
Mr.Max (06.11.2019 в 00:53)
Там привязка по ip не проходит никак . Только курлом как то думаю можно просунуть .
Там привязка по ip не проходит никак . Только курлом как то думаю можно просунуть .
Скинь донора , будет время гляну
d1nka , во-первых умничать я не умею, во-вторых поменять не составит труда, в-втретих дина, хорош сама умничать, если вопрос остался без ответа. В гугле через header прописано, а ему нужен чистый curl без загаловков на передачу POST. В-четвертых люди не могут искать в поиске и бояться вбить в неё, но бегут на форумы, якобы помогут.
Toruz (07.11.2019 в 07:04)
d1nka , во-первых умничать я не умею, во-вторых поменять не составит труда, в-втретих дина, хорош сама умничать, если вопрос остался без ответа. В гугле через header прописано, а ему нужен чистый curl без загаловков на передачу POST. В-четвертых люди не могут искать в поиске и бояться вбить в неё, но бегут на форумы, якобы помогут.
d1nka , во-первых умничать я не умею, во-вторых поменять не составит труда, в-втретих дина, хорош сама умничать, если вопрос остался без ответа. В гугле через header прописано, а ему нужен чистый curl без загаловков на передачу POST. В-четвертых люди не могут искать в поиске и бояться вбить в неё, но бегут на форумы, якобы помогут.
Для этого и нужен формум. Нее??? За одно и поисковик потом сюда будет вести за ответами. Разве не в этом смысл форума?
Стр.: 1, 2