Как я могу заставить загрузку в PHP с помощью куки? Я пытался использовать file_get_contents и cURL, но я не знаю, может ли в file_get_contents использовать cookie.
Я использую этот код, но у него нет cookie:
<?php
$extensiones = array("jpg", "jpeg", "png", "gif");
$f = $_POST["direccion"];
$nombre_archivo = $_POST["nombre_archivo"];
if(strpos($f,"/") < 6){
die("No puedes navegar por otros directorios");
}
$ftmp = explode(".",$f);
$fExt = strtolower($ftmp[count($ftmp)-1]);
if(!in_array($fExt,$extensiones)){
die("<b>¡ERROR!</b> No es posible descargar archivos con la extensión $fExt");
}
header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$nombre_archivo\"\n");
$fp=fopen("$f", "r");
fpassthru($fp);
?>
И то же самое с cURL и cookie, но файл сохраняется на сервере, и я не хочу этого. Я хочу принудительно загрузить для этого пользователя, как и другой код (file_get_contents), но с использованием куки 🙁
<?php
// Data for the login
$raw_post = "&". http_build_query(array("user" => "xxxxxxxxxxxxxxxxx"));
$raw_post .= "&". http_build_query(array("password" => "xxxxxxxxxxxxxxxxx"));
// Login
$ch = curl_init('https://www.instagram.com/accounts/login/');
curl_setopt($ch, CURLOPT_POST,1);
curl_setopt($ch, CURLOPT_POSTFIELDS , $raw_post );
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie.txt');
$buffer = curl_exec($ch);
// Download the file
$fp = fopen("hi.jpg", 'w+');
$ch = curl_init("http://www.gravatar.com/avatar/10773ae6687b55736e171c038b4228d2");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_1);
curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_exec($ch);
?>
Задача ещё не решена.
Других решений пока нет …