You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Laravel Storage从FTP将文件下载至应用程序本地?

实现FTP存储文件下载至应用本地文件夹

完全可行,不需要用返回给用户的Storage::download(),直接通过Laravel的Storage门面操作即可完成服务器端的文件迁移,以下是三种常用实现方式:

方式一:小文件直接读写内容

适合文件体积较小的场景,直接读取FTP文件内容后写入本地磁盘:

// 从FTP磁盘读取目标文件内容
$fileContent = Storage::disk('ftp')->get('path/to/remote/file.txt');

// 将内容写入本地指定路径(示例使用local磁盘,对应storage/app目录)
Storage::disk('local')->put('path/to/local/saved-file.txt', $fileContent);

方式二:大文件流式处理

针对大文件,使用流操作可以避免内存占用过高,性能更优:

// 打开FTP文件的读流
$readStream = Storage::disk('ftp')->readStream('path/to/remote/large-file.zip');

// 将流写入本地磁盘的目标文件
$writeStream = Storage::disk('local')->writeStream('path/to/local/saved-large-file.zip', $readStream);

// 手动关闭流资源,释放内存
fclose($readStream);
fclose($writeStream);

方式三:跨磁盘直接复制

如果你的本地磁盘已在config/filesystems.php中配置完成,还可以直接调用copy方法完成跨磁盘文件复制:

// 参数依次为:FTP端文件路径、本地端文件路径、目标磁盘名称
Storage::disk('ftp')->copy('path/to/remote/file.txt', 'path/to/local/saved-file.txt', 'local');

注意事项

  • 确保config/filesystems.php中已正确配置ftp磁盘和本地磁盘(如local)的参数
  • 应用服务器需要有本地目标文件夹的写入权限
  • 大文件优先选择流式处理,避免内存溢出

内容的提问来源于stack exchange,提问作者Sasquatch

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:51:03