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

时间:2014-01-21 16:06:39

标签: php ftp ftp-server

我在两个相同的实例之一上使用ftp_get()时遇到了一个奇怪的问题。一个在localhost上,另一个在实际服务器上。我正在使用以下内容通过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服务器上的文件名是什么或它位于何处无关紧要。

在第二个实例上,它与localhost相同(即从同一个git repo中提取)代码,我可以下载一次文件,但是同一个文件无法再次下载,ftp_get()返回假。如果我在FTP服务器上更改文件的名称,我可以下载它,但之后它将无法再次运行。即ftp_get()将返回false。

我无法访问FTP服务器日志。如果它可用,我将尝试从主机获取它。但任何人都可以想到这可能发生的原因吗? ftp_get()只是在没有任何解释的情况下返回true或false,所以我非常坚持这一点。

我使用的是PHP 5.4,我不知道FTP(常规FTP)服务器的规格是什么。

1 个答案:

答案 0 :(得分:1)

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

我对此感到有些惊讶,因为我认为PHP会引发警告。在调试时,您的error_reporting是否允许这样做?