PHP 脚本和命令行中的 FTP 失败并显示 553,但 Filezilla 传输正常
我在 PHP 脚本中遇到奇怪的 FTP 故障。我仅使用命令行 FTP 重现了该故障,因此我认为我可以从查询中删除 PHP。
在 Ubuntu 10.10 中使用命令行 FTP,我可以连接到我的 FTP 服务器、登录、列出目录等。但是,当我尝试使用“put”将文件从本地计算机传输到 FTP 服务器时,我得到“553无法创建文件”错误。我在主动和被动模式下遇到同样的错误。传输设置为二进制。
当我在同一台计算机上运行 FileZilla 并使用相同的凭据连接到同一 FTP 服务器,并尝试将同一文件传输到同一目标目录时,在默认为二进制和被动模式后,传输工作正常。
FWIW,使用相同细节的 PHP 脚本(这是一个简单的 ftp_connect、ftp_login 和 ftp_put)因“非法端口命令”而失败,尽管我怀疑这只是 PHP 对我从命令行 FTP 得到的相同错误的解释。同样,此错误在主动和被动 FTP 模式下都会发生。
I'm getting a weird FTP failure in a PHP script. I've recreated the failure just using command line FTP, so I think I can eliminate PHP from my enquiries.
Using command line FTP in Ubuntu 10.10, I can connect to my FTP server, log in, list directories, etc. However, when I try to transfer a file from my local machine to the FTP server using "put" I get a "553 Could not create file" error. I get the same error in active and passive modes. Transfer is set to binary.
When I run FileZilla on the same machine and connect to the same FTP server using the same credentials, and try to transfer the same file to the same destination directory, the transfer works just fine, after defaulting to binary and passive mode.
FWIW, the PHP script (which is a simple ftp_connect, ftp_login and ftp_put) using the same details fails with "Illegal PORT command", although I suspect this is just PHP's interpretation of the same error I get from command line FTP. Again, this error occurs in both active and passive FTP modes.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
FileZilla 和 ftp 命令可能在不同的目录中启动。您可以在 FileZilla 中设置起始远程目录,并且必须从命令行转到同一位置。
从命令行客户端登录后尝试使用 pwd 命令,它将显示当前工作目录,将其与 FileZilla 正在使用的目录进行比较,然后使用 cd 转到正确的目录> 命令。
FileZilla and ftp command probably starts in a different directories. You can setup starting remote directory in FileZilla and you have to go to the same location from command line.
Try using
pwd
command after logging in from command line client, it will show current working directory, compare that with the one FileZilla is using and then go to the correct directory with acd
command.