首页 > 解决方案 > Laravel 文件系统 - 将文件从一个磁盘移动到另一个磁盘

问题描述

我正在尝试将文件从我的 FTP 服务器移动到本地目录。首先我需要从 FTP 服务器上找到正确的文件,因为可能有几百个:

//Search for the file.
$fileName= array_filter(Storage::disk('ftp')->files(), function ($file)
{
   return preg_match('/('.date("Y-m-d" ,time()).').*.XLSX/', $file);
});

上面找到正确的文件。如果我dd($fileName),我得到这个: My File Name.XLSX

然后我尝试将该文件移动到我的公共磁盘:

 $ftp_file = Storage::disk('ftp')->get($fileName);
 $local_file = Storage::disk('public')->move($ftp_file, "moved_file.xlsx");

但是上面的代码不起作用。我得到以下错误:

preg_match() 期望参数 2 是字符串,给定数组

我已经确定它在以下功能上:

$ftp_file = Storage::disk('ftp')->get($fileName);

我究竟做错了什么?如何将在 FTP 服务器上找到的文件移动到本地磁盘?

先感谢您。

标签: phplaravel

解决方案


正如@Loek 指出的那样,$fileName是一个数组,因此要访问它,我需要使用:

 $ftp_file = Storage::disk('ftp')->get($fileName[0]);

推荐阅读