php tp5 从URL下载文件到本地指定路径

2020-05-25  本文已影响0人  进击的奥莉

最近在做一个下载从URL地址下载pdf文件,并保存到本地服务器的操作

下面代码不管下载什么都可以套用.

在common/controller/Base.php中添加以下代码(写在公共调用区)

/**

* 下载pdf文件到服务器

*@param url 要下载的url地址 

*@param path 保存的路径

@param bh 唯一文件名

*/

public function download_file($url, $path='uploads/baogao',$bh)

{

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);

    $file = curl_exec($ch);

    curl_close($ch);

    $this->save_file( $file, $path, $bh);

}

/**

*保存文件

/*

private function save_file($file, $path, $bh)

{

    //判断文件夹是否存在,不存在则创建文件夹

    if(!is_dir($path)){

        mkdir($path,0777,true);

    }

    $resource = fopen($path .'/'.$bh .'.pdf', 'a');//以写的形式打开文件

    fwrite($resource, $file);//将资源写入文件

    fclose($resource);

}

在index/controller/index.php中写入以下代码(在你想调用的地方调用)

use app\common\controller\Base;

class Index extends Base {

    public function get_file()

    {

        $url = "http://****:8889/report.aspx";//自己获取

        $path = $this->params['path'];

        $bh = $this->params['bh'];

        $this->download_file($url, $path, $bh);

        $list['file'] = www.baidu.com .'/'. $path .'/'.$bh .'.pdf';//www.baidu.com换成自己公司的网址

        return $list;

    }

}

很简单吧,希望对你有帮助.

上一篇下一篇

猜你喜欢

热点阅读