我在 PHP 脚本中遇到奇怪的 FTP 故障。我仅使用命令行 FTP 重现了故障,因此我认为我可以从查询中消除 PHP。
在 Ubuntu 10.10 中使用命令行 FTP,我可以连接到我的 FTP 服务器、登录、列出目录等。但是,当我尝试使用“put”将文件从我的本地机器传输到 FTP 服务器时,我得到“553 无法创建文件”错误。我在主动和被动模式下遇到相同的错误。传输设置为二进制。
当我在同一台机器上运行 FileZilla 并使用相同的凭据连接到同一台 FTP 服务器,并尝试将同一文件传输到同一目标目录时,在默认为二进制和被动模式后,传输工作正常。
FWIW,使用相同细节的 PHP 脚本(这是一个简单的 ftp_connect、ftp_login 和 ftp_put)因“非法 PORT 命令”而失败,尽管我怀疑这只是 PHP 对我从命令行 FTP 得到的相同错误的解释。同样,此错误在主动和被动 FTP 模式下都会发生。
最佳答案
FileZilla 和 ftp 命令可能在不同的目录中启动。您可以在 FileZilla 中设置启动远程目录,并且您必须从命令行转到相同的位置。
从命令行客户端登录后尝试使用 pwd
命令,它将显示当前工作目录,将其与 FileZilla 使用的目录进行比较,然后使用 cd 转到正确的目录
命令。
关于php - PHP 脚本和命令行中的 FTP 失败并显示 553,但 Filezilla 传输正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5531934/