Bir görüntünün doğrudan bir bağlantı verilir, nasıl php kullanarak, benim sunucuda oluşturduğunuz bir klasöre gerçek görüntüyü saklamak?
Teşekkürler
$image_url = 'http://example.com/image.jpg';
$image = file_get_contents($image_url);
file_put_contents('/my/path/image.jpg', $image);
Bir fındık kabuğunda, görüntü kapmak, .. o kadar kolay görüntüyü saklamak.
Not: allow_url_fopen php.ini ayarı çalışmak için yukarıdaki örneğin true olarak ayarlanması gerekir.
Giderek kolay bir yöntem de var:
$img = 'http://www.domain.com/image.jpg';
$img = imagecreatefromjpeg($img);
$path = '/local/absolute/path/images/';
imagejpeg($img, $path);
Allow_url_fopen ilgili yukarıdaki açıklama aynı zamanda bu yöntem için de geçerlidir. Eğer oldukça kısıtlayıcı dizi varsa bu sorunu aşmanın cURL kullanmak gerekebilir:
/**
* For when allow_url_fopen is closed.
*
* @param string $img The web url to the image you wish to dl
* @param string $fullpath The local absolute path where you want to save the img
*/
function save_image($img, $fullpath) {
$ch = curl_init ($img);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1);
$binary_img = curl_exec($ch);
curl_close ($ch);
if (file_exists($fullpath)){
unlink($fullpath);
}
$fp = fopen($fullpath, 'x');
fwrite($fp, $binary_img);
fclose($fp);
}