Loading...
Как с помощью курла отдать файл http://wwww.kinogo.cc/145cb6d5eb97c3180306c3038c6d4fc6:2019110516/films/hq/kolett-2018.flv на скачку ? Другие варики через header не конают.
Mr.Max , Продемонстрируем curl запрос на примере, с учетом следующих ограничений. 1. Файл надо загрузить методом POST 2. Необходима авторизация 3. На сервере установлен сертификат ssl Способ 1, командная строка: Загрузка файла непосредственно через командную строку выглядит так:
apache
   curl -i -u user:password -X POST --form datafile=@/path/to/some/file.txt https://localhost:443/page --insecure   
Разберем подробнее: -X — указываем метод POST -u — логин и пароль пользователя —insecure — при работе по https часто приходится тестировать в тестовом окружении где не стоит проверенный сертификат. Этой опцией отказываемся от проверки. Чтобы ещё более подробно узнать о тонкостях команды, используйте curl —help Способ 2, PHP: Продемонстрируем как загрузить файл
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);   
Практически всё прокомментировано в коде, однако отмечу функцию curl_file_create , один сервер постоянно ругался что файл как-то не так указан или отсутсвует. Это вылечилось добавлением мим типа, т.е. функция curl_file_create создает дополнительные заголовки для корректной отправки файла. Способ 3, Python : Наконец дошли до python, здесь воспользуемя отличной библиотекой requests
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)   
В указанном примере открываем файл в режиме бинарного чтения, и дальше сразу делаем запроc. В запросе указаны параметры авторизации, метод, страница и файл. Если файлов несколько — просто расширьте словарь files. Всё просто, удачи с curl!
Toruz (05.11.2019 в 13:08) Mr.Max , Продемонстрируем curl запрос на примере, с учетом следующих ограничений. 1. Файл надо загрузить методом POST 2. Необходима авторизация 3. На сервере установлен сертификат ssl Способ 1, командная строка: Загрузка файла непосредственно через командную строку выглядит так:
apache
   curl -i -u user:password -X POST --form datafile=@/path/to/some/file.txt https://localhost:443/page --insecure   
Разберем подробнее: -X — указываем метод POST -u — логин и пароль пользователя —insecure — при работе по https часто приходится тестировать в тестовом окружении где не стоит проверенный сертификат. Этой опцией отказываемся от проверки. Чтобы ещё более подробно узнать о тонкостях команды, используйте curl —help Способ 2, PHP: Продемонстрируем как загрузить файл
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);   
Практически всё прокомментировано в коде, однако отмечу функцию curl_file_create , один сервер постоянно ругался что файл как-то не так указан или отсутсвует. Это вылечилось добавлением мим типа, т.е. функция curl_file_create создает дополнительные заголовки для корректной отправки файла. Способ 3, Python : Наконец дошли до python, здесь воспользуемя отличной библиотекой requests
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)   
В указанном примере открываем файл в режиме бинарного чтения, и дальше сразу делаем запроc. В запросе указаны параметры авторизации, метод, страница и файл. Если файлов несколько — просто расширьте словарь files. Всё просто, удачи с curl!
ты элементарный запрос curl на отправку post данных написал, и то усложнил его более некуда.) ему наоборот надо с ОТДАТЬ НА СКАЧКУ, не на ЗАГРУЗКУ.) будьте внимательны, когда пытаетесь сумничать, смешно выглядит
Mr.Max (04.11.2019 в 13:34)
Как с помощью курла отдать файл http://wwww.kinogo.cc/145cb6d5eb97c3180306c3038c6d4fc6:2019110516/films/hq/kolett-2018.flv на скачку ? Другие варики через header не конают.

донор блокает заголовки?
в php://output поток транслируй отправку данных курла Гг
Как вариант возможно прокатит, но вообще что за извращенство ты придумал?
Хочешь отдать файл от своего сервера, проксируй его, не хочешь нагружать свой сервер, отдавай с донора, проксировать на уровне nginx если что Гг
d1nka (05.11.2019 в 13:34)
донор блокает заголовки?

Там привязка по ip не проходит никак . Только курлом как то думаю можно просунуть .
System (05.11.2019 в 13:55)
в php://output поток транслируй отправку данных курла Гг
Как вариант возможно прокатит, но вообще что за извращенство ты придумал?
Хочешь отдать файл от своего сервера, проксируй его, не хочешь нагружать свой сервер, отдавай с донора, проксировать на уровне nginx если что Гг

Так донор блочит . Я бы с радостью . Есть только тор который можно заюзать
________
посл. ред. 06.11.2019 в 00:55; всего 1 раз(а); by Mr.Max
Mr.Max (06.11.2019 в 00:53)
Там привязка по ip не проходит никак . Только курлом как то думаю можно просунуть .

Скинь донора , будет время гляну
d1nka , во-первых умничать я не умею, во-вторых поменять не составит труда, в-втретих дина, хорош сама умничать, если вопрос остался без ответа. В гугле через header прописано, а ему нужен чистый curl без загаловков на передачу POST. В-четвертых люди не могут искать в поиске и бояться вбить в неё, но бегут на форумы, якобы помогут.
Toruz (07.11.2019 в 07:04)
d1nka , во-первых умничать я не умею, во-вторых поменять не составит труда, в-втретих дина, хорош сама умничать, если вопрос остался без ответа. В гугле через header прописано, а ему нужен чистый curl без загаловков на передачу POST. В-четвертых люди не могут искать в поиске и бояться вбить в неё, но бегут на форумы, якобы помогут.

Для этого и нужен формум. Нее??? За одно и поисковик потом сюда будет вести за ответами. Разве не в этом смысл форума?
Онлайн: 4
Время:
Gen. 0.159
(c) Bym.Guru 2010-2026