Форум программистов, компьютерный форум, киберфорум
PHP: сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 1
Регистрация: 01.10.2015
Сообщений: 10

Загрузка файла через curl, а вместо файла страница с кроказабярами

16.04.2016, 22:47. Показов 2357. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Скачиваю файл через curl, а вместо него вылазает страница с крокозябрами
HTML5 Скопировано
1
HTTP/1.1 100 Continue HTTP/1.1 200 OK Server: nginx Date: Sat, 16 Apr 2016 19:36:28 GMT Content-Type: application/x-zip-compressed; name="Price_������_xlsm.zip"; charset="windows-1251" Content-Length: 3965484 Connection: keep-alive Set-Cookie: rkol=1; expires=Fri, 10-Feb-2017 19:29:49 GMT; path=/ Pragma: public Expires: 0 Cache-Control: must-revalidate, post-check=0, pre-check=0 Content-Description: File Transfer Content-Size: 3965484 Accept-Ranges: bytes Content-Disposition: attachment; filename="Price_������_xlsm.zip" Content-Transfer-Encoding: binary PK+��He�|�<���<�$���������_������.xlsm ����$��Yʺ�,��B���,����s�.Ϻ-ڶm۶{�m۶fs�f۶m۶m����Z{{o�q?���G�Y�Vd=9r<����R� (`��u.[�?��@Z�v��&��z��&N:t�6�y @9@����n*�����'�hD�8ay5�qx��~d�hF�;Q�ϸ���#uV����G��S��ֵ��d/a:���=�9�z����w��RՅ�xTM������Er��� �a����B9e���ʼn"Ⲧ�e�5GIC�G��{�nZ'`��e��    �����Z��سP�7}aU�#�(R%J�=?�%0Ѡ��� Ҍ�  X�V5��    � 8���d�@���/u¬�l�|΁a&�j�w[{[n��?t��:�"��1a�_˝�kk�XyQ�+����D�����Sy����`uK��!�x�s��=3���c��ބrU}
Сам скрипт
PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
$curl = curl_init(); 
 
curl_setopt($curl, CURLOPT_URL, 'https://site.com/?action=Y3F86565&action1=YD56AF97&lol=28e0e91f7d77a5a6a7ea1373f21c6912&type=xlsm');
 
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cook.txt');
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cook.txt');
curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_REFERER, 'https://site.com/');
curl_setopt($curl, CURLOPT_TIMEOUT, 3);
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
  'client'=>'clientid',  
  'login'=>'name',
  'password'=>'pass',
  'Ok'=>'Войти'
));
 
curl_setopt($curl, CURLOPT_HEADER, 1);
 
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$result = curl_exec($curl); 
curl_close($curl);
Как сделать так, чтобы файл скачивался, а не открывался, как HTML-страница
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.04.2016, 22:47
Ответы с готовыми решениями:

Загрузка файла в curl
Делаю загрузку картинок на хостинг через сайт, после запрос возвращает xml где указано что файл не загружен, подскажите как в curl ...

Отправка файла на хост через CURL
Уже пару дней мучаюсь с отправкой пикчи на хост, уже кучу разного перепробовал, и в base64 через пост-запрос, и через бусты, получается...

Загрузка файла вместо отображения его в браузере
Здравствуйте! Пытаюсь решить следующую проблему: у меня на сервере есть файл с расширением .cpp, но когда я пытаюсь его загрузить браузер...

2
wq
85 / 78 / 32
Регистрация: 26.11.2015
Сообщений: 481
16.04.2016, 23:44
PHP Скопировано
1
2
3
4
5
//----------
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //вывод в переменную
if ($result = curl_exec($curl)) {
    file_put_contents('saved-file-path-name.ext', $result);
}
1
0 / 0 / 1
Регистрация: 01.10.2015
Сообщений: 10
18.04.2016, 03:07  [ТС]
Таким способом не получилось. Скачивался файл в 10 килобайт, вместо 3 мегабайт. Хотя скорее всего это произошло из-за таймаута в 3 секунды. Кароче, выкладываю рабочий, если у кого-то возникнет подобная ситуация.

PHP Скопировано
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$name='download.zip'; 
 
$curl = curl_init(); 
curl_setopt($curl, CURLOPT_URL, "https://site.com/?action=$action1&action1=$action2&lol=$lol&type=xlsm");
$file=fopen($name, "w+"); 
curl_setopt($curl, CURLOPT_FILE, $file);
curl_setopt($curl, CURLOPT_COOKIEJAR, 'cook.txt'); 
curl_setopt($curl, CURLOPT_COOKIEFILE, 'cook.txt');
curl_setopt($curl, CURLOPT_USERAGENT, "Opera/10.00 (Windows NT 5.1; U; ru) Presto/2.2.0");
curl_setopt($curl, CURLOPT_FAILONERROR, 1);
curl_setopt($curl, CURLOPT_REFERER, 'https://site.com/');
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 0);
curl_setopt($curl, CURLOPT_POST, 1); 
curl_setopt($curl, CURLOPT_POSTFIELDS, array(
  'client'=>'clientid',  
  'login'=>'user',
  'password'=>'pass',
  'Ok'=>'Войти',
   
));
 
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt ($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt ($curl, CURLOPT_SSL_VERIFYHOST, 0);
$result = curl_exec($curl); 
 
 
 
curl_close($curl);
fclose($file);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.04.2016, 03:07
Помогаю со студенческими работами здесь

Загрузка файла через urllib
Всем привет. Пишу программу, которая загружает определенный файл и показывает процент загрузки. С Божьей помощью я нашел в интернете...

Загрузка файла через ADO
Доброго времени суток !! Пишу программу клиент на делфи! Подскажите как сделать чтобы при нажатии на button1 открывается OpenDialog1 я...

Загрузка файла через интернет!
У кого есть исходник загрузки .exe файла через интернет???? с ProgressBar ??????????

Загрузка файла через браузер
Всем доброй ночи. Проблема такая, надо отослать письмо с приатаченым файлом! вроде легкоЖ) я использую CDONTS, и приатачить файл не...

Загрузка файла через консоль
Пытаюсь написать консольный Контроллер, выглядит пока вот так class UtilController extends Controller { public function...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Не удержался от оценки концепции двигателя Стирлинга.
Hrethgir 03.04.2025
Сколько не пытался - она выдавала правильные схемы, причём случайно рисовала горячие области в середине, холодные по краям, трубки с краёв в низ и магнит в соединяющей, но при этой выдавала описание. . .
Метод с двумя буферами (или double buffering) или ping-pong buffering
Hrethgir 02.04.2025
Из ответов LM модели. Метод, который предполагает использование двух массивов для хранения промежуточных результатов сложения векторов, обычно применяется в сценариях, где необходимо минимизировать. . .
На любовном киберфронте
Alexander-7 01.04.2025
Недавно на одном малоизвестном сайте знакомств мною заинтересовалась девушка: «Текст немного странный. Но, судя по адресу почты, иностранка», – подумал я. Поколебавшись пару суток, я ответил ей:. . .
Как работает Node.js изнутри
run.dev 29.03.2025
Node. js изменил подход к разработке веб-приложений, позволив использовать JavaScript не только на стороне клиента, но и на сервере. Созданный в 2009 году Райаном Далем, этот открытый,. . .
Моки в Python: Mock Object Library
py-thonny 29.03.2025
Тестирование кода требует особого подхода, когда речь идёт о компонентах, взаимодействующих с внешним миром. Мы часто сталкиваемся с непредсказуемостью HTTP-запросов, чтением данных из базы или. . .
JavaScript: Управление памятью и улучшение производительности
run.dev 29.03.2025
В отличие от низкоуровневых языков программирования, JavaScript не требует ручного выделения и освобождения памяти. Здесь работает автоматический сборщик мусора, который определяет, какие объекты. . .
Мультитенантная архитектура со SpringBoot и PostgreSQL
ArchitectMsa 29.03.2025
SaaS-приложения редко обслуживают одного клиента и обычно они должны поддерживать множество организаций, каждая из которых работает в своём изолированном пространстве. Мультитенантная архитектура. . .
std::span в C++: Производительность и лучшие практики
NullReferenced 28.03.2025
std::span — одно из самых недооценённых нововведений стандарта C++20, которое радикально меняет подход к работе с непрерывными последовательностями данных. По сути, это невладеющее представление. . .
Многопоточность в C#: Threadpool
UnmanagedCoder 28.03.2025
Пул потоков в C# — это коллекция заранее созданных и готовых к использованию потоков, которые находятся в распоряжении приложения. Вместо того чтобы создавать и уничтожать потоки для каждой небольшой. . .
Вопросы на собеседованиях по микросервисам
ArchitectMsa 27.03.2025
Работодатели ищут не просто разработчиков, знающих базовые концепции, а специалистов, разбирающихся в тонкостях масштабирования, отказоустойчивости и производительности. Сейчас на первый план выходят. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер