从FTP下载大文件(〜500 Mb)到本地存储,而不会破坏服务器

时间:2018-09-03 05:59:59

标签: php laravel

我需要将大型XML文件从远程FTP服务器下载到本地存储,以便我可以对其进行处理。

我已经定义了可以访问文件的FTP驱动程序。但是,由于文件大小,PHP放弃了为该操作分配内存。

Storage::disk('ftp')->get('path/to/file/bigass.xml');

有什么方法可以不消耗内存,并且可以毫无问题地下载文件吗?

1 个答案:

答案 0 :(得分:0)

我建议使用类似以下的方法切换到“普通的”卷曲解决方案:

$curl = curl_init();
$fh   = fopen("localfilename.xml", 'w');
curl_setopt($curl, CURLOPT_URL, "ftp://{$ftp_username}:{$ftp_password}@{$ftp_server}/path/to/file/bigass.xml");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($curl);
fwrite($fh, $result);
fclose($fh);
curl_close($curl);