2017-12-11 3 views
0

Die Datei, die ich zum Download versuchen hierDatei herunterladen zum Server PHP

befindet sich
https://assetgame.roblox.com/Asset/?id=942531514 

Wenn Sie den Link laden, es auto zwingt ein Download auf Ihnen.

Ich versuche einen Weg zu finden, PHP dazu zu bringen, die Datei herunterzuladen und für spätere Verwendung auf dem Server zu speichern.

Ich habe Curl und file_put_contents von file_get_contents versucht, aber keiner hat funktioniert.

Danke!

+0

ich den Link in Chrom geklickt haben, ist es nicht einen Download erzwingen. Es ist einfach ein json_encoded Array. Curl oder file_get_contents sollten funktionieren, und wenn sie mit json_decode gekoppelt sind, sollten Sie die Daten erhalten. – Alex

+0

Meine schlechte, aktualisierte den Beitrag. Ich habe versehentlich den falschen Link gesetzt, mein Schlechter. –

+0

Sorry Lawrence, ich habe versehentlich die falsche URL eingegeben. Ich hätte gerne die Datei, nicht das XML. –

Antwort

0

Hier ist die Aufschlüsselung.

Die URL Sie versuchen, zu nennen: ist https://assetgame.roblox.com/Asset/?id=942531514

die URL der Datei gefunden in: http://c3.rbxcdn.com/43865ade81ebad6d3493166f3bcfc631

Da der Server im Header ein erzwungenes Herunterladen zurück. Sie können versuchen, etwas wie folgt:

function download_file($url,$saveto){ 
    $cinit = curl_init ($url); 
    curl_setopt($cinit, CURLOPT_HEADER, 0); 
    curl_setopt($cinit, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($cinit, CURLOPT_BINARYTRANSFER,1); 
    $cexec=curl_exec($cint); 
    curl_close ($cinit); 
    if(file_exists($saveto)){ 
     unlink($saveto); 
    } 
    $fp = fopen($saveto,'x'); 
    fwrite($fp, $raw); 
    fclose($fp); 
} 

Ich hoffe, das funktioniert für Sie.

+0

Wie würde ich die zweite Bild-URL von der ersten URL abrufen? –

+0

Ich hoffe, dass [dieser Beitrag] (https://stackoverflow.com/questions/3519939/how-can-i-find-where-i-will-be-re-redirected-using-curl) für diese Aufgabe hilfreich sein könnte –

1

Ihre URL ein HTTP Location Redirect verwenden, die file_get_contents überhaupt nicht verstehen, weshalb definitiv file_get_contents wird nicht funktionieren (Warnung, ein weiterer Grund, file_get_contents könnte, ist nicht wegen der allow_url_fopen php.ini Einstellung). curl versteht es zwar, ignoriert es aber standardmäßig, das ist wahrscheinlich der Grund, warum dein Curl-Code fehlgeschlagen ist. explizit curl tell http Umleitungen mit dem CURLOPT_FOLLOWLOCATION Option zu folgen, und es sollte mit curl arbeiten, zB

$ch = curl_init ('https://assetgame.roblox.com/Asset/?id=942531514'); 
curl_setopt_array ($ch, array (
     CURLOPT_FOLLOWLOCATION => true, 
     CURLOPT_RETURNTRANSFER => true 
)); 
$xml=curl_exec($ch); 
var_dump($xml);