在Laravel中使用ftp与sftp上传文件

创建于 10个月前 / 阅读数 124 / PHP


简介

Laravel 文件系统集成为使用本地文件系统、Amazon S3 和 Rackspace 云存储提供了简单易用的驱动程序。

本文主要介绍 ftp 与 sftp 方式的使用。

使用 ftp 方式

laravel 默认支持 ftp 的方式进行文件传输,这里以 upyun 为例进行说明

配置

config / filesystems.php

'disks' => [
    ...
    'upyun' => [
          'driver'   => 'ftp',
          'host'     => 'v0.ftp.upyun.com',
          'username' => 'xxx',
          'password' => 'xxx',
          'port' => 21
    ]
]

使用

这里通过路由方式进行简单说明routes / web.php

Route::get('file', function () {
    Storage::disk('upyun') -> put('selslim.txt', 'Selslim');
});

说明:可以自定义目录,例子中是又拍云根目录

使用 sftp 方式

通过扩展的方式使用

安装

$ composer require league/flysystem-sftp

配置

config / filesystems.php

'disks' => [
    ...
    'aliyun' => [
        'driver' => 'sftp',
        'host' => 'xxx.xx.xx.xxx',
        'username' => 'xxx',
        'password' => 'xxx',
        // Optional SFTP Settings...
        'port' => 22,
        'root' => '/selslim/',
        'timeout' => 30,
    ],
]

说明:假设传到 / selslim / 下

测试

routes / web.php

use League\Flysystem\Sftp\SftpAdapter;
use League\Flysystem\Filesystem;

Route::get('file', function () {
    $config = config('filesystems.disks.aliyun');
    $adapter = new SftpAdapter($config);
    $filesystem = new Filesystem($adapter);
    $filesystem -> put('selslim.txt', 'Selslim');
});