PHP Download Image Or File From URL

I’ll show you 3 functions that download a particular file (ex: image,video,zip,pdf,doc,xls,etc) from a remote resource (via a valid URL) then save to your server.

Depending on your current php.ini settings, some functions may not work; therefore, let try which function is best for you.

Note: please ensure the folder you want to store the downloaded file is existed and has write permission for everyone or the web process.

For all examples below, I assume that we’re going to download a remote image from: http://4rapiddev.com/wp-includes/images/logo.jpg and save it to a download sub folder with name: file.jpg.

1. PHP Download Remote File With file_get_contents and file_put_contents

<?php
    function download_remote_file($file_url, $save_to)
    {
        $content = file_get_contents($file_url);
        file_put_contents($save_to, $content);
    }
?>

 

Example:

<?php
    download_remote_file('http://cdn2.4rapiddev.com/wp-includes/images/logo.jpg', realpath("./downloads") . '/file.jpg');
?>

 

2. PHP Download Remote File With CURL

<?php
    function download_remote_file_with_curl($file_url, $save_to)
    {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 0); 
        curl_setopt($ch,CURLOPT_URL,$file_url); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
        $file_content = curl_exec($ch);
        curl_close($ch);
 
        $downloaded_file = fopen($save_to, 'w');
        fwrite($downloaded_file, $file_content);
        fclose($downloaded_file);
 
    }
?>

 

Example:

<?php
    download_remote_file_with_curl('http://cdn2.4rapiddev.com/wp-includes/images/logo.jpg', realpath("./downloads") . '/file.jpg');
?>

 

3. PHP Download Remote File With fopen

<?php
    function download_remote_file_with_fopen($file_url, $save_to)
    {
        $in=    fopen($file_url, "rb");
        $out=   fopen($save_to, "wb");
 
        while ($chunk = fread($in,8192))
        {
            fwrite($out, $chunk, 8192);
        }
 
        fclose($in);
        fclose($out);
    }
?>

 

Example:

<?php
    download_remote_file_with_fopen('http://cdn2.4rapiddev.com/wp-includes/images/logo.jpg', realpath("./downloads") . '/file.jpg');
?>

 

Again, “download” folder must be exists and writable.

 

From: http://4rapiddev.com/php/download-image-or-file-from-url/

posted @ 2012-04-24 20:49  Lux.Y  阅读(1627)  评论(0)    收藏  举报