Filesystems 如何从laravel 5.6中的SFTP下载目录中列出的所有文件

Filesystems 如何从laravel 5.6中的SFTP下载目录中列出的所有文件,filesystems,laravel-5.6,Filesystems,Laravel 5.6,我是拉雷维尔的新手。我正在制作一个应用程序,其中我检查一个正在sftp上提供服务的目录。通过查看文档,我成功地列出了该sftp上托管的目录中的所有文件名 我的下一个目标是将所有这些文件保存在本地文件夹“public/InputFiles”中,但我如何做到这一点,我尝试了几种组合,但都没有起到任何作用。 这就是我所做的。在config/filesystem.php中,我有 'disks' => [ 'local' => [ 'driver' => 'lo

我是拉雷维尔的新手。我正在制作一个应用程序,其中我检查一个正在sftp上提供服务的目录。通过查看文档,我成功地列出了该sftp上托管的目录中的所有文件名

我的下一个目标是将所有这些文件保存在本地文件夹“public/InputFiles”中,但我如何做到这一点,我尝试了几种组合,但都没有起到任何作用。 这就是我所做的。在config/filesystem.php中,我有

'disks' => [

    'local' => [
        'driver' => 'local',
        'root' => storage_path('app'),
    ],

    'public' => [
        'driver' => 'local',
        'root' => public_path().'/InputFiles',
        'url' => env('APP_URL').'/storage',
        'visibility' => 'public',
    ],
  'sftp' => [
        'driver' => 'sftp',
        'host' => 'exampleHost.com',
        'username' => 'username',
        'password' => 'password',]
在我的控制器中,我有这个功能

public function getFilesFromFtp()
{


    //all files are present inside 'outgoing' folder
    $file_list = Storage::disk('sftp')->allFiles('outgoing/');

    foreach ($file_list as $key => $value) {
        # code...
  //output the name of the files
        $this->printVariable(str_replace("outgoing/", "", $value));
        Storage::disk('public')->put(str_replace("outgoing/", "", $value), Storage::disk('sftp')->download($value));

      }
例如,我在sftp的传出文件夹中有一个名为sample.txt的文件。 在这个文件中,我将文本作为“示例文本”。通过使用上述方法,我能够看到在所需位置生成的sample.txt文件,但其内容如下

HTTP/1.0 200正常 缓存控制:无缓存,专用 内容处置:附件;filename=“sample.txt” 内容长度:12 内容类型:文本/纯文本 日期:2018年4月19日星期四10:35:10 GMT


这不是我想要的。我实际上想保存文件,就像在sftp上一样。我该怎么做?

刚把行改成

Storage::disk('public')->put(str_replace("outgoing/", "", $value), Storage::disk('sftp')->get($value));
所以基本上我从sftp获取文件并将其放在本地目录中。不需要下载