PHP实现远程下载文件到本地

5年以前  |  阅读数:282 次  |  编程语言:PHP 

代码很简单就不多废话了,直接奉上:


    <?php
    echo httpcopy("http://www.baidu.com/img/baidu_sylogo1.gif");

    function httpcopy($url, $file="", $timeout=60) {
      $file = empty($file) ? pathinfo($url,PATHINFO_BASENAME) : $file;
      $dir = pathinfo($file,PATHINFO_DIRNAME);
      !is_dir($dir) && @mkdir($dir,0755,true);
      $url = str_replace(" ","%20",$url);

      if(function_exists('curl_init')) {
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
        $temp = curl_exec($ch);
        if(@file_put_contents($file, $temp) && !curl_error($ch)) {
          return $file;
        } else {
          return false;
        }
      } else {
        $opts = array(
          "http"=>array(
          "method"=>"GET",
          "header"=>"",
          "timeout"=>$timeout)
        );
        $context = stream_context_create($opts);
        if(@copy($url, $file, $context)) {
          //$http_response_header
          return $file;
        } else {
          return false;
        }
      }
    }
    ?>

再来个远程下载文件到服务器


    <form method="post">
    <input name="url" size="50" />
    <input name="submit" type="submit" />
    </form>
    < ?php
    // maximum execution time in seconds
    set_time_limit (24 * 60 * 60);
    if (!isset($_POST['submit'])) die();
    // folder to save downloaded files to. must end with slash
    $destination_folder = 'temp/';

    $url = $_POST['url'];
    $newfname = $destination_folder . basename($url);
    $file = fopen ($url, "rb");
    if ($file) {
    $newf = fopen ($newfname, "wb");
    if ($newf)
    while(!feof($file)) {
    fwrite($newf, fread($file, 1024 * 8 ), 1024 * 8 );
    }
    }
    if ($file) {
    fclose($file);
    }
    if ($newf) {
    fclose($newf);
    }
    ?>

以上所述就是本文的全部内容了,希望大家能够喜欢。

 相关文章:
PHP分页显示制作详细讲解
SSH 登录失败:Host key verification failed
获取IMSI
将二进制数据转为16进制以便显示
获取IMEI
文件下载
贪吃蛇
双位运算符
PHP自定义函数获取搜索引擎来源关键字的方法
Java生成UUID
发送邮件
年的日历图
提取后缀名
在Zeus Web Server中安装PHP语言支持
让你成为最历害的git提交人
Yii2汉字转拼音类的实例代码
再谈PHP中单双引号的区别详解
指定应用ID以获取对应的应用名称
Python 2与Python 3版本和编码的对比
php封装的page分页类完整实例