2016-04-22 5 views
-2

OK speichern, ... ist dies in Bezug auf: Copy Image from Remote Server Over HTTPkann nicht ein Bild von einem Remote-Server mit PHP

Hier ist mein Code:

for ($i = 0; $i < count($json_post['Category']); ++$i) 
{ 
    echo $json_post['Category'][$i]['CategoryID'] . '<br />'; 
    echo $json_post['Category'][$i]['Name'] . '<br />'; 
    echo $json_post['Category'][$i]['Image'] . '<br />'; 
    $image_URL = "https://$_SSActiveWear_BaseURL/" . $json_post['Category'][$i]['Image']; 
    echo $image_URL . "<br /><br />"; 
    copy("https://$_SSActiveWear_BaseURL/$image_URL", $_SERVER['DOCUMENT_ROOT']."/tmp/" . basename($image_URL)); 
    die; 
} 

ich cURL mit dem gleichen Ergebnis versucht habe, .

Was passiert ist, dass die Dateien erstellt werden, aber mit der gleichen Dateilänge von 58k und wenn ich versuche, ein zu öffnen, um es zu öffnen, kann es nicht geöffnet werden. Tatsächlich ist es der HTML-Inhalt der Indexseite von dem Server, von dem ich versuche, das Bild zu speichern.

Bearbeiten 1 Wenn ich das zu speichernde Bild fest codiere, anstatt die Variablen zu verwenden, wird das richtige Bild gespeichert.

+0

was ist der Wert von '$ _SSActiveWear_BaseURL'? Was ist der tatsächliche Weg eines Bildes? –

Antwort

0

Es ist weil Ihre URL falsch interpretiert wird. Verwenden Sie immer {} um Variable in string:

copy("https://$_SSActiveWear_BaseURL/$image_URL", $_SERVER['DOCUMENT_ROOT']."/tmp/" . basename($image_URL)); 

wird copy("https://SSActiveWear_BaseUrl/_URL", ...) umgewandelt. Wie Sie sehen können, findet PHP die Variablen $_ und $image nicht und wendet für sie null an.

korrekte Syntax:

copy("https://{$_SSActiveWear_BaseURL}/{$image_URL}", "{$_SERVER['DOCUMENT_ROOT']}/tmp/".basename($image_URL)); 
+0

OH .... TY ... Das würde es erklären. Ich bin ein C# -Programmierer und lerne jetzt PHP. –

1

Ich habe das herausgefunden.

haben folgende Änderung:

copy($image_URL, $_SERVER['DOCUMENT_ROOT']."/tmp/" . basename($image_URL)); 

Ich verstehe nicht, warum, wenn eine einzelne Variable verwendet wird, wie in diesem Fall, es funktioniert und nicht, wenn ich eine zusammengesetzte Anweisung verwenden.

Verwandte Themen