原理:

    请求第三方存储图片的服务器,获取到图片后,暂存图片在请求方服务器上,然后请求时即可获取下载图片到本地。

function downRemoteImage($url)
{
    $fp = @fopen($url, 'rb');
    if (is_resource($fp))
    {
        $re = get_headers($url, true);
        $file_size = $re['Content-Length'];

        //下载文件需要用到的头  
        Header("Content-type: application/octet-stream");   
        Header("Accept-Ranges: bytes");   
        Header("Accept-Length:" . $file_size);   
        Header("Content-Disposition: p_w_upload; filename=" . basename($url));
        header('Expires: 0');
        header('Pragma: public'); 
        $buffer = 1024;  
        $file_count = 0;
        //向浏览器返回数据  
        while (!feof($fp) && $file_count < $file_size)
        {  
            $file_count += $buffer;  
            print(fread($fp, $buffer));
            flush();
            ob_flush();
        }  
        fclose($fp);
    }
}
//调用
$url = '
downRemoteImage($url);