简体   繁体   中英

CURL download image php not working

I'm trying to download a dynamic generated image to my server using curl and php and for some reason I keep failing Can someone help out... Below is my code

function download_image($image_url){
    $ch = curl_init($image_url);
    // curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // enable if you want
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 1000);      // some large value to allow curl to run for a long time
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0');
    curl_setopt($ch, CURLOPT_WRITEFUNCTION, "curl_callback");
    curl_setopt($ch, CURLOPT_VERBOSE, true);   // Enable this line to see debug prints
    curl_exec($ch);

    curl_close($ch);                              // closing curl handle
}

/** callback function for curl */
function curl_callback($ch, $bytes){
    global $fp;
    $len = fwrite($fp, $bytes);
    // if you want, you can use any progress printing here
    return $len;
}

$image_file = "ram.png";
$fp = fopen ($image_file, 'w+');              // open file handle
download_image("http://chart.apis.google.com/chart?chl=30%&chs=300x120&cht=gm&chco=77AB10,FFFF00|FF0000&chd=t:30&chf=bg,s,232526");
fclose($fp);    

Try removing the encoded ampersands here:

download_image("http://chart.apis.google.com/chart?chl=30%&chs=300x120&cht=gm&chco=77AB10,FFFF00|FF0000&chd=t:30&chf=bg,s,232526"); 

So that it looks like:

download_image("http://chart.apis.google.com/chart?chl=30%&chs=300x120&cht=gm&chco=77AB10,FFFF00|FF0000&chd=t:30&chf=bg,s,232526");

Maybe for this url using htmlspecialchars_decode will help when using the & in the url.

$url = htmlspecialchars_decode("http://chart.apis.google.com/chart?chl=30%&chs=300x120&cht=gm&chco=77AB10,FFFF00|FF0000&chd=t:30&chf=bg,s,232526");
download_image($url);

this code works for me just fine

 $ch = curl_init('http://soundcheck.xyz:8000/playingart?sid=1?'.$fresh);
            var_dump($ch);
            $fp = fopen('/home/soundcheck/public_html/images/artwork.png', 'wb');
            curl_setopt($fp, CURLOPT_FRESH_CONNECT, TRUE);
            curl_setopt($fp, CURLOPT_FORBID_REUSE, TRUE);
            curl_setopt($ch, CURLOPT_FILE, $fp);
            curl_setopt($ch, CURLOPT_HEADER, 0);
            curl_exec($ch);
            curl_close($ch);
            fclose($fp);

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM