PHP下载大文件的两种方法
前言
接到一个 自动下载上传 的需求,要求能够自动下载线上 url 的文件获取“包名”并且上传到自己的服务器。
思路
通过 curl 下载文件,获取包名后, 再上传到 自己的 服务器。研究后决定使用 php 的 ftp 扩展包进行上传。
- CURL下载 ;
- ftp_connect php的 ftp 扩展;
CURL
研究后使用一下curl代码, 可以绕过 https 验证, 自动302跳转, 并且分段下载:
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 60);
curl_setopt($ch, CURLOPT_TIMEOUT, 3600);
curl_setopt($ch, CURLOPT_BUFFERSIZE, 20971520);
$a = './filename.apk';
$h = f