如何用CURL将文件下载到本地指定文件夹

Posted Hail Hydra

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用CURL将文件下载到本地指定文件夹相关的知识,希望对你有一定的参考价值。

//获得跳转后的url地址
    function getLocationUrl($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_USERAGENT, "Fiddler");
        curl_setopt($ch, CURLOPT_HEADER, TRUE);
        $response = curl_exec($ch);
        curl_close($ch);
        preg_match_all(‘/^Location:(.*)$/mi‘, $response, $matches);

        return ! empty($matches[1]) ? trim($matches[1][0]) : ‘‘;
    }
function GrabFile($url, $dir, $filename=‘‘){
        if(empty($url)){
            return false;
        }
        $ext = strrchr($url, ‘.‘);
        /*if($ext != ‘.gif‘ && $ext != ".jpg" && $ext != ".bmp"){
            echo "格式不支持!";
            return false;
        }*/

        $dir = realpath($dir);

        /*$start = strrpos($url, "realName=")+9;
        $end = strrpos($url, "&");
        $length = $end-$start;
        $filename = substr($url, $start,$length);*/

        //目录+文件
        $filename = (empty($filename) ? ‘/‘.time().‘‘.$ext : ‘/‘.$filename);
        $filename = $dir . $filename;
        //开始捕捉
        ob_start();
        readfile($url);
        $img = ob_get_contents();
        ob_end_clean();
        $size = strlen($img);
        $fp2 = fopen($filename , "a");
        fwrite($fp2, $img);
        fclose($fp2);
        return $filename;
    }

若下载文件的url有重定向,可先调用第一个方法

$imgpath = "http://www.baidu.com/img/bdlogo.png";

$url = $this->getLocationUrl($imgpath);
$result = $this->GrabFile($url,"E:\Tools\download");//(图片地址,存放目录,存放显示文件名称);
var_dump($result);

以上是关于如何用CURL将文件下载到本地指定文件夹的主要内容,如果未能解决你的问题,请参考以下文章

树莓派 python 如何将本地文件上传到指定的服务器页面上

如何用Git将本地项目上传到Github

如何用curl命令上传文件到制定的目录

如何用aspx把指定url的图片或文件下载到服务器上?

求教python,如何用python自动下载文件

如何用java导入Excel数据到数据库?