PHP:ftp_get()只能下载一次同名文件

PHP:ftp_get()只能下载一次同名文件,php,ftp,ftp-server,Php,Ftp,Ftp Server,在两个相同的实例之一上使用ftp\u get()时,我遇到了一个奇怪的问题。一个在本地主机上,另一个在实际服务器上。我使用下面的方法通过FTP下载文件。这两个实例都使用相同的凭据和路径从相同的FTP服务器下载 $result = ftp_get($connection, $downloadPath, $serverPath, FTP_BINARY); if ($result) { $successfulWrites[] = $downloadPath; // fi

在两个相同的实例之一上使用
ftp\u get()
时,我遇到了一个奇怪的问题。一个在本地主机上,另一个在实际服务器上。我使用下面的方法通过FTP下载文件。这两个实例都使用相同的凭据和路径从相同的FTP服务器下载

$result = ftp_get($connection, $downloadPath, $serverPath, FTP_BINARY);

    if ($result) {
        $successfulWrites[] = $downloadPath;    // file name only without path
    } else {
        // on second attempt to download file with same name, ftp_get() returns false
        // this is where I throw an exception in my code
}
在我的本地主机上,我可以反复下载同一个文件,不管FTP服务器上的文件名是什么,也不管它位于何处

在第二个实例中,代码与本地主机相同(即从同一git repo中提取),我可以下载一次文件,但不能再次下载相同的文件,并且
ftp_get()
返回false。如果我在FTP服务器上更改了文件名,我可以下载它,但是在那之后它就不能再工作了。i、 e.
ftp\u get()
将返回false

我没有访问FTP服务器日志的权限。如果可以的话,我今天会设法从主持人那里拿到。但有人能想出这样的原因吗
ftp_get()
只返回true或false而不做任何解释,所以我很难接受这个问题


我使用的是PHP5.4,我不知道FTP(常规FTP)服务器的规范是什么。

如前所述,听起来好像是
FTP\u get
成功获取了文件并在本地写入。我想知道是否由于权限问题,当它再次尝试在本地写入文件时,失败了。因此,FTP通道本身很好,问题只是本地的


我对此感到有些惊讶,因为我可以想象PHP会发出警告。您的
错误报告设置是否允许在调试时执行此操作?

否,我实际上没有保存文件。我正在阅读内容并进行更新,但还没有达到这一点。让我更新代码,让它包含更多的信息。如果您将FTP函数调用替换为PHP中的控制台
FTP
调用,那么这在相同的服务器到服务器组合中有效吗?这将是一个很好的测试,可以缩小范围;如果这样做失败的话,当地方面似乎没有问题。然后可能是远程端,或者可能与连接有关。我不太理解控制台
ftp
调用。您是指在命令行中执行PHP代码吗?另外,FTP_二进制参数是否与此有关?我记得几周前我写这段代码时,在FTP_BINARY和FTP_ASCII方面遇到了一些问题。你指的是在命令行中执行PHP代码吗?不,另一种方法是——在PHP中执行命令行,使用类似于
system
的东西。我想知道是否PHP的FTP实现可能是个问题,因为你可以在PHP中轻松地运行控制台FTP命令,这可能值得一试。哦,我真是个傻瓜<代码>$downloadPath
!使用
ftp\u get()
时,先保存文件,然后再读取。让我做一些修改,暂时考虑到这一点,我会让你知道这是否是一个许可问题。不过,我不知道为什么会有许可问题。同一用户
apache
应该正在写入或重写文件。