Php FTP fopen()错误550—;不是普通文件

Php FTP fopen()错误550—;不是普通文件,php,ftp,Php,Ftp,嗯,这是一个我以前从未见过的问题 我正在尝试使用PHP的fopen()和feof()来传输FTP文件,以便将其从一台服务器复制到我自己的服务器上。当使用普通的http://url时,这种方法可以很好地工作。但是,当使用ftp://协议时,我收到以下错误: fopen(ftp://.../streaming/planted2.mp4) [0function.fopen0]: failed to open stream: FTP server reports 550 /streaming/plant

嗯,这是一个我以前从未见过的问题

我正在尝试使用PHP的
fopen()
feof()
来传输FTP文件,以便将其从一台服务器复制到我自己的服务器上。当使用普通的
http://
url时,这种方法可以很好地工作。但是,当使用
ftp://
协议时,我收到以下错误:

fopen(ftp://.../streaming/planted2.mp4) [0function.fopen0]: failed to open stream: FTP server reports 550 /streaming/planted2.mp4: not a plain file.

请记住,我已确认URL是正确的

如果我把它弹出浏览器的搜索栏,它总是正确加载

出现此错误后,任何尝试在包装器上使用
feof()
fread()
的行为都会导致错误,抱怨相应的函数需要一个资源,但提供的是布尔值。如果
fopen()

由于文件相当大(有时几GB),因此流媒体是必需的。另外,由于服务器的配置,我需要一种方法来循环每个块,以便缓冲一些输出。如果我不这样做,服务器就会停止工作。就Rackspace而言,这是一种奇怪的配置。这就是我使用feof()的原因

因此,不用多说,我的问题是:550错误是什么意思,什么是“普通文件”?如果我试图从中下载的服务器的配置有问题,考虑到我的限制,我的选项是什么

编辑 我已确定这是服务器问题。然而,这个问题仍然没有得到解决


我联系了我的老板和我们的服务器管理员,服务器管理员告诉我在另一台基于Windows的服务器上测试这个,而不是在我正在玩的基于Linux的服务器上。我的脚本与Windows服务器配合使用,因此我已确认我的脚本没有错误


不幸的是,我的老板仍然希望我找出问题所在,并找出为什么它不能在Linux机器上工作。我完全不知道为什么,也不知道该去哪里找。任何提示都将不胜感激

我在尝试从sco unix服务器获取文件时遇到了这个问题

服务器文件位置:/home/user/data/myfile.csv

我可以把下面的文件放到任何浏览器中,它就会得到文件

ftp://user:password@host/data/myfile.csv
但是,如果我运行以下命令,我会得到与您相同的错误

$f = fopen("ftp://user:password@host/data/myfile.csv", "r");
但是,如果我将完整路径放入fopen中,它可以正常工作

$f = fopen("ftp://user:password@host/home/user/data/myfile.csv", "r");

我不确定这是否能为您解决问题,但对我来说很有效。

我联系了我的老板和我们的服务器管理员,服务器管理员让我在另一台基于Windows的服务器上测试,而不是在我正在玩的基于Linux的服务器上测试。我的脚本可以在Windows服务器上运行,因此我已经确认我的脚本没有错误。我的老板仍然希望我找出问题所在,并找出为什么它不能在Linux机器上运行。我完全不知道为什么,也不知道该去哪里找。任何提示都将不胜感激!