【问题标题】:How to use ftp with laravel 5?如何在 laravel 5 中使用 ftp?
【发布时间】:2018-01-04 06:00:40
【问题描述】:

laravel 文档的文件存储部分显示了一个示例 FTP 配置,但没有解释如何使用它。谁能举例说明如何让 laravel 除了磁盘连接外还使用 ftp 连接?

【问题讨论】:

标签: laravel laravel-5 ftp laravel-5.4 ftp-client


【解决方案1】:

使用以下代码配置config文件夹中的filesystem.php文件:

disks' => [

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

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION'),
            'bucket' => env('AWS_BUCKET'),
            'url' => env('AWS_URL'),
        ],

        'ftp' => [
            'driver' => 'ftp',
            'host' => 'ftp.foo.com',
            'username' => 'username',
            'password' => 'password',

            // Optional FTP Settings...
            'port' => 21,
            // 'root' => '',
            // 'passive' => true,
            // 'ssl' => true,
            // 'timeout' => 30,
        ],
    ],

然后使用:

Storage::disk('ftp')->get('/foo/file');

【讨论】:

    【解决方案2】:

    https://laravel.com/docs/5.4/filesystem

    Laravel 文件系统(以及许多 Laravel)的美妙之处在于命令是“驱动程序无关的”。这意味着您定义要使用的“驱动程序”(在您的情况下为 FTP)并对其进行配置,然后所有命令都是相同的。

    所以要将文件上传到您的 ftp 文件系统,您可以执行以下操作:

    Storage::disk('ftp')->put('avatars/1', $fileContents);

    上面 ::disk 方法的参数定义了 Laravel 应该使用哪个“磁盘”,所以如果你设置了 S3,你可以这样做:

    Storage::disk('s3')->put('avatars/1', $fileContents);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-06
      • 2018-09-30
      • 2016-11-25
      • 1970-01-01
      • 2015-04-18
      • 2015-03-14
      • 2019-12-08
      相关资源
      最近更新 更多