2016-06-20 24 views
-1

Ich habe diesen Code in meinem curl: $ data_string = json_encode ($ Daten);laden Sie eine Datei von PHP Curl

$ch = curl_init($url);                  
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);              
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                  
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                   
    'Content-Type: application/json; charset=utf-8', 
    'User-Agent: '.$_SERVER['HTTP_USER_AGENT'], 
    'X-Forwarded-For: '.$this->getIp() 
));  

$result = curl_exec($ch); 
return $result; 

Ich erhalte dieses Kauderwelsch Ergebnis:

enter image description here

ich eine Bilddatei erwarten.

Frage ist hier, dass, wie kann ich diese Bilddatei herunterladen?

+1

Das ** ist ** eine Bilddatei! Genauer gesagt, ein JPEG-Bild. –

+0

@ ÁlvaroGonzález Ja, mir ist das wohl bewusst. Frage ist, wie kann ich dieses herunterladen? oder vielleicht die Datei in meinem Browser echo. – PinoyStackOverflower

Antwort

5

können Sie diesen Code verwenden

$profile_Image = $url; //image url 
$userImage = 'myimg.jpg'; // renaming image 
$path = ''; // your saving path 
$ch = curl_init($profile_Image); 
$fp = fopen($path . $userImage, 'wb'); 
curl_setopt($ch, CURLOPT_FILE, $fp); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
$result = curl_exec($ch); 
curl_close($ch); 
fclose($fp); 
2

Sie können dies versuchen:

$data=send_curl($url); 
$path='./test.jpg'; 
$file = file_put_contents($path,$data); 

die Funktion send_curl

function send_curl($url, $data, $PROXY = "") { 
    $ch = curl_init(); 
    if ($PROXY != "") { 
    curl_setopt ($ch, CURLOPT_PROXY, $PROXY); 
    } 
    curl_setopt ($ch, CURLOPT_URL, $url); 
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt ($ch, CURLOPT_POST, 1); 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, $data); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
    $result = curl_exec ($ch); 
    curl_close ($ch); 
    return $result; 
} 
0

Idealerweise Browser entscheiden, wie ein bestimmtes Stück zeigen von Inhalt mit den Informationen der Content-Type HTTP-Header und PHP kann HTTP-Header mit der 0 generierenFunktion.

Wenn Sie sicher sind, dass Ihr Bild immer im JPEG-Format sein wird, es ist ziemlich einfach:

header('Content-Type: image/jpeg'); 
echo your_download_function(); 
exit; 

Andernfalls müssen Sie den Header von dem Remote-Server zurück holen. Curl hat eine knifflige Syntax - ich beziehe mich auf PHP cURL retrieving response headers AND body in a single request?