【问题标题】:Downloading a large file (~500 Mb) to local storage from FTP, without breaking the server从 FTP 下载一个大文件 (~500 Mb) 到本地存储,而不破坏服务器
【发布时间】:2018-09-03 05:59:58
【问题描述】:

我需要从远程 FTP 服务器下载一个大型 XML 文件到本地存储,以便我可以处理它。

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

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

有没有什么办法既不占用内存又可以毫无问题地下载文件?

【问题讨论】:

标签: php laravel


【解决方案1】:

我建议切换到“普通的旧” curl 解决方案,使用如下所示:

$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);

【讨论】:

  • 它的工作方式有何不同?我的意思是,curl 是否支持流式传输?
猜你喜欢
  • 2021-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-02
相关资源
最近更新 更多