Php 如何修复从FTP下载大文件(使用流)时达到的内存限制

Php 如何修复从FTP下载大文件(使用流)时达到的内存限制,php,laravel,Php,Laravel,将多个大型FTP文件下载到本地计算机时,我的Laravel应用程序中出现了错误“最大内存限制” 添加流媒体以避免内存。限制错误。不幸的是,这并没有解决问题。我错过了什么 foreach$文件作为$fileName{ $path=存储路径。'/app/files/'; $disk=存储::磁盘“ftp”; $stream=$disk ->getDriver ->readStream$fileName; \是\u资源$stream&\file\u put\u contents$path。$fileN

将多个大型FTP文件下载到本地计算机时,我的Laravel应用程序中出现了错误“最大内存限制”

添加流媒体以避免内存。限制错误。不幸的是,这并没有解决问题。我错过了什么

foreach$文件作为$fileName{ $path=存储路径。'/app/files/'; $disk=存储::磁盘“ftp”; $stream=$disk ->getDriver ->readStream$fileName; \是\u资源$stream&\file\u put\u contents$path。$fileName\stream\u get\u contents$stream,file\u APPEND; }
您可以编辑php.ini文件

memory_limit = xxxM
或者通过.htaccess

php_value memory_limit xxxM
或者在你的剧本里

ini_set('memory_limit','xxxM');

您不应该将完整的文件加载到内存中,而应该只处理块并将它们附加到服务器上的物理文件中。这样,脚本的内存占用保持不变且很小,而不管您要传输的文件有多大。“我遗漏了什么?”—您仍然在一次读取整个流内容,因此它仍然完全位于内存中。stream_get_contents读取剩余的全部内容-除非您使用maxlength和offset参数使其行为不正常。好的,但我如何创建此块方法?@Dennis如果这解决了您的问题,请接受答案