Использование PHP CURL для загрузки файла - PullRequest
1 голос
/ 06 марта 2012

Я пытаюсь загрузить файл .exe с помощью PHP CURL с веб-сервера на ПК, используя CURL для автоматического входа на веб-сервер. У меня проблема в том, что файл записывается в окно браузера, а не просит пользователя сохранить или запустить файл. Я использую код ниже, как я могу это исправить, чтобы он работал так, как я хочу?

$username = "myuser";
$password = "mypassword";
$url="http://www.mywebsite.com/files/softwaredownload/myfile.exe";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_exec ($ch);
curl_close($ch);

Ответы [ 2 ]

3 голосов
/ 06 марта 2012

Вы должны установить заголовки, чтобы браузер знал, что он должен отобразить диалоговое окно сохранения.

Content-Disposition: attachment; filename=<file name.ext>

Также имейте в виду, что заголовок Content-Type должен быть до Content-Disposition.

2 голосов
/ 06 марта 2012

Добавьте в свой код эти строки:

curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

... и замените curl_exec($ch) на $response = curl_exec($ch);, чтобы содержимое $ response могло быть сохранено в локальном файле с помощью file_put_contents() из fwrite() методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...