it-swarm.com.de

Bild speichern aus PHP URL

Ich muss ein Bild von einer PHP - URL auf meinem PC speichern. __ Nehmen wir an, ich habe eine Seite http://example.com/image.php, die ein einzelnes "Blumen" -Bild enthält, sonst nichts. Wie kann ich dieses Bild von der URL unter einem neuen Namen speichern (mit PHP)?

364
riad

Wenn Sie allow_url_fopen auf true eingestellt haben:

$url = 'http://example.com/image.php';
$img = '/my/folder/flower.gif';
file_put_contents($img, file_get_contents($url));

Sonst verwenden Sie cURL :

$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
661
vartec
copy('http://example.com/image.php', 'local/folder/flower.jpg');
229
Halil Özgür
$content = file_get_contents('http://example.com/image.php');
file_put_contents('/my/folder/flower.jpg', $content);
60
soulmerge

Los geht's, das Beispiel speichert das Remote-Image in image.jpg.

function save_image($inPath,$outPath)
{ //Download images from remote server
    $in=    fopen($inPath, "rb");
    $out=   fopen($outPath, "wb");
    while ($chunk = fread($in,8192))
    {
        fwrite($out, $chunk, 8192);
    }
    fclose($in);
    fclose($out);
}

save_image('http://www.someimagesite.com/img.jpg','image.jpg');
26
Sam152

Vartecs Antwort mit cURL hat bei mir nicht funktioniert. Mit einer leichten Verbesserung aufgrund meines spezifischen Problems.

z.B.,

Wenn sich auf dem Server eine Umleitung befindet (z. B. wenn Sie versuchen, das Facebook-Profilbild zu speichern), benötigen Sie folgende Option:

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

Die vollständige Lösung wird:

$ch = curl_init('http://example.com/image.php');
$fp = fopen('/my/folder/flower.gif', 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_exec($ch);
curl_close($ch);
fclose($fp);
22
stoefln

Ich habe keine der anderen Lösungen bekommen können, aber ich konnte wget verwenden

$tempDir = '/download/file/here';
$finalDir = '/keep/file/here';
$imageUrl = 'http://www.example.com/image.jpg';

exec("cd $tempDir && wget --quiet $imageUrl");

if (!file_exists("$tempDir/image.jpg")) {
    throw new Exception('Failed while trying to download image');
}

if (rename("$tempDir/image.jpg", "$finalDir/new-image-name.jpg") === false) {
    throw new Exception('Failed while trying to move image file from temp dir to final dir');
}
8
Andrew
$img_file='http://www.somedomain.com/someimage.jpg'

$img_file=file_get_contents($img_file);

$file_loc=$_SERVER['DOCUMENT_ROOT'].'/some_dir/test.jpg';

$file_handler=fopen($file_loc,'w');

if(fwrite($file_handler,$img_file)==false){
    echo 'error';
}

fclose($file_handler);
3
karl

Siehe file()PHP Handbuch :

$url    = 'http://mixednews.ru/wp-content/uploads/2011/10/0ed9320413f3ba172471860e77b15587.jpg';
$img    = 'miki.png';
$file   = file($url);
$result = file_put_contents($img, $file)
3
zloctb

Erstellen Sie einen Ordner mit dem Namen images, der sich in dem Pfad befindet, den Sie zum Platzieren des zu erstellenden PHP-Skripts verwenden möchten. Stellen Sie sicher, dass es über Schreibrechte für alle Benutzer verfügt, oder die Skripts funktionieren nicht (die Dateien können nicht in das Verzeichnis hochgeladen werden). 

1
Ibrahim

installieren Sie wkhtmltoimage auf Ihrem Server und verwenden Sie dann mein Paket packagist.org/packages/tohidhabiby/htmltoimage, um ein Image aus der URL Ihres Ziels zu generieren.

0
TohidHabiby
$data = file_get_contents('http://example.com/image.php');
$img = imagecreatefromstring($data);
imagepng($img, 'test.png');
0
sen