Php Laravel文件系统-将文件从一个磁盘移动到另一个磁盘

Php Laravel文件系统-将文件从一个磁盘移动到另一个磁盘,php,laravel,Php,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($file

我正在尝试将文件从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服务器上的文件移动到本地磁盘


提前谢谢。

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

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

什么是回报?(提示:过滤后的数组)。@Loek-如果我只是
print\r(数组过滤器(…
它返回:
array([0]=>My File Name.XLSX)
这是一个数组,对吗?不管怎样,
$fileName
包含一个数组,您将它放入
->get()中
函数,该函数需要一个字符串。只需将参数更改为
$fileName[0]
就可以解决这种情况下的问题。@Loek,所以我想我必须使用:
->get($fileName[0])