【问题标题】:Copy or create file on remote FTP在远程 FTP 上复制或创建文件
【发布时间】:2020-11-12 00:35:32
【问题描述】:

所以,我尝试了 4 种不同的方法,但都没有奏效。

有一个第 3 方服务器,我可以通过 Filezilla 在其上创建和删除文件。不过,这是出于测试目的。

我的 Laravel 应用程序上有一个脚本,它每天运行一次,创建一些 XML 文件,这些文件需要自动传输到同一台服务器。

当我创建一个 ftp 文件系统时,我在超时后收到错误 "ftp_rawlist(): php_connect_nonb() failed: Operation now in progress (115)"

当我尝试 PHP 的 ftp_put 或 ftp_fput 时,我收到错误 "ftp_put(): php_connect_nonb() failed: Operation now in progress (115)"(或 ftp_fput,同样的错误)。

当我尝试使用 ftp 作为目标的 PHP 的 fwrite 时,我收到错误“无法打开流:操作失败”。这在浏览器中也失败了。

我已确保凭据正确无误。我已经从有效的 Filezilla 连接详细信息中复制/粘贴了它们。

文件系统代码:

        'ftp' => [
            'driver' => 'ftp',
            'host' => env('FTP_HOST'),
            'username' => env('FTP_USERNAME'),
            'password' => env('FTP_PASSWORD'),
            'root' => '/Production',
            'ssl' => true,
            'ignorePassiveAddress' => true,
        ],

我知道 NAT 背后的服务器问题,但它不会接受我在文件系统中使用原始地址的更改。我已经清除了缓存、配置并喂了仓鼠,但没有任何变化。

老实说,我现在的知识已经走到了尽头。并且要求第 3 方更改他们的配置/设置不是一种选择。该服务器是众多服务器之一,它们完全相同,但客户端不同。他们可能会通过提供日志来帮助我,但仅此而已。

我看到的唯一其他可能不同的是我正在从命令行运行此代码(即,就好像它通过 cron 运行一样)。不确定这是否会导致在远程服务器上连接和创建文件时出现问题。我没有编写 Laravel 命令的经验。

任何帮助将不胜感激。

【问题讨论】:

  • 你试过没有 ssl 设置为 true 吗?

标签: php laravel-5 ftp remote-server file-transfer


【解决方案1】:

好的。

好的。在配置文件里面是这样的:

'ftp' => [
    'driver' => 'ftp',
    'host' => 'ftp.example.com',
    'username' => 'your-username',
    'password' => 'your-password',
   'passive' => 'false',
   'ignorePassiveAddress' => true,
   'port' => 21,
]

在 ftp 中添加文件“test.pdf”

简单地运行

$contents = \Storage::disk('ftp')->exists('test.pdf');

dd( $contents );

它有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多