Php Laravel文件系统-将文件从一个磁盘移动到另一个磁盘
我正在尝试将文件从FTP服务器移动到本地目录。首先,我需要从FTP服务器找到正确的文件,因为可能有几百个: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
//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])
?