从PHP中的链接存储图像

时间:2009-10-19 22:27:29

标签: php image storage

给定图像的直接链接,如何使用php将实际图像存储在我在服务器上创建的文件夹中?

由于

2 个答案:

答案 0 :(得分:4)

$image_url = 'http://example.com/image.jpg';
$image = file_get_contents($image_url);
file_put_contents('/my/path/image.jpg', $image);

在坚果壳中,抓住图像,存储图像......这很容易。

注意:必须将allow_url_fopen php.ini设置设置为true才能使上述示例正常工作。

答案 1 :(得分:2)

还有一种简单的方法:

$img = 'http://www.domain.com/image.jpg';
$img = imagecreatefromjpeg($img);
$path = '/local/absolute/path/images/';
imagejpeg($img, $path);

关于allow_url_fopen的上述注释也适用于此方法。如果你有一个相当严格的主机,你可能需要利用cURL来解决这个问题:

/**
 * 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);
}