zoukankan      html  css  js  c++  java
  • php实现远程网络文件下载到服务器指定目录(方法一)

    PHP实现远程网络文件下载到服务器指定目录(方法一)

    <?php
    function getFile($url, $save_dir = '', $filename = '', $type = 0) {
        if (trim($url) == '') {
            return false;
        }
        if (trim($save_dir) == '') {
            $save_dir = './';
        }
        if (0 !== strrpos($save_dir, '/')) {
            $save_dir.= '/';
        }
        //创建保存目录
        if (!file_exists($save_dir) && !mkdir($save_dir, 0777, true)) {
            return false;
        }
        //获取远程文件所采用的方法
        if ($type) {
            $ch = curl_init();
            $timeout = 5;
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
            $content = curl_exec($ch);
            curl_close($ch);
        } else {
            ob_start();
            readfile($url);
            $content = ob_get_contents();
            ob_end_clean();
        }
        //echo $content;
        $size = strlen($content);
        //文件大小
        $fp2 = @fopen($save_dir . $filename, 'a');
        fwrite($fp2, $content);
        fclose($fp2);
        unset($content, $url);
        return array(
            'file_name' => $filename,
            'save_path' => $save_dir . $filename,
            'file_size' => $size
        );
    }
    //$url = "http://www.baidu.com/img/baidu_jgylogo3.gif";
    //$url="http://192.168.1.212/aaa.doc";
    $url="http://192.168.31.1/".urlencode(iconv("GB2312","UTF-8","测试.doc"));
    $save_dir = "down/";
    //$filename = "baidu_jgylog1o31.gif";
    $filename ="学习1.doc";
    $res = getFile($url, $save_dir, $filename,1);//0  1 都是好使的
    var_dump($res);
    ?>

    备注说明:

    如果远程文件的命名是英文的话可以直接下载就可以了,如果远程文件名是中文的,必须转换成utf-8的编码格式,然后再urlencode转换成url加密的格式,

    php的代码程序的编码是gb2312。

  • 相关阅读:
    SQL EXPLAIN优化详解
    2019数据智能算法大赛赛后复盘
    K-D树详解
    点云配准相关
    pandas速查手册(中文版)
    Windows CMD命令大全
    获取时间戳
    SQL 字符串转成临时表
    delphi cxgrid明细新增第三行的报错【Key violation】
    cxgrid列的Properties(cxPopupEditPopup)的关闭方法
  • 原文地址:https://www.cnblogs.com/wicub/p/6520272.html
Copyright © 2011-2022 走看看