gpt4 book ai didi

filesystems - 如何从 Laravel 5.6 中的 SFTP 下载目录中列出的所有文件

转载 作者:行者123 更新时间:2023-12-04 16:03:18 26 4
gpt4 key购买 nike

我是 Laravel 的新手。我正在制作一个应用程序,在其中检查在 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',]

在我的 Controller 中,我有这个功能
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 OK Cache-Control: no-cache, private Content-Disposition: attachment; filename="sample.txt" Content-Length: 12 Content-Type: text/plain Date: Thu, 19 Apr 2018 10:35:10 GMT



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

最佳答案

只是将行更改为

Storage::disk('public')->put(str_replace("outgoing/", "", $value), Storage::disk('sftp')->get($value));

所以基本上我是从 sftp 获取文件并将其放在本地目录中。无需下载。

关于filesystems - 如何从 Laravel 5.6 中的 SFTP 下载目录中列出的所有文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49919292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com