2012-09-01 6 views
2

Lorsque j'utilise cURL pour télécharger un fichier, cURL l'affiche dans le navigateur. Mais je veux ouvrir la fenêtre de téléchargement du navigateur «Enregistrer dans». Comment puis je faire ça?cURL + Télécharger le fichier via le navigateur

$c = curl_init(); 
curl_setopt($c, CURLOPT_URL, $url); 
curl_setopt($c, CURLOPT_POSTFIELDS, "file_name=test.rar"); 
curl_setopt($c, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($c, CURLOPT_FOLLOWLOCATION, true); 
curl_exec($c); 
curl_close($c); 

Répondre

3
ini_set('memory_limit','128M'); 
$content = curl_exec($c); 
curl_close($c); 

header('Content-Description: File Transfer'); 
header('Content-Type: application/octet-stream'); 
header('Content-Disposition: attachment; filename=your_file.txt'); 
header('Content-Transfer-Encoding: binary'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Pragma: public'); 
header('Content-Length: ' . strlen($content)); 
ob_clean(); 
flush(); 
echo $content; 
flush(); 
+0

Je reçois fuite de mémoire Erreur fatale: taille maximale autorisée pour la mémoire de 67108864 octets épuisé –

+0

utilisez 'ini_set (« memory_limit », « 128M »)' – Peter

+0

Donc, si je comprends bien, bouclera télécharger le fichier et après j'ai obtenu la fenêtre "Enregistrer dans" Pourquoi donc? –

Questions connexes