使用php cURL在ftp站点上移动文件

时间:2012-03-15 19:30:41

标签: php curl ftp

我需要在使用php cURL下载后重命名文件。

这就是我所拥有的:

    $localFile = fopen($fileName, 'w');

    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FILE, $localFile);
    curl_setopt($curl, CURLOPT_USERPWD, "$ftpUsername:$ftpPassword");
    curl_setopt($curl, CURLOPT_POSTQUOTE, array("RNFR $remoteFile", "RNTO $remoteFile.downloaded"));

    curl_exec($curl) === false) {
        throw new Exception(curl_error($curl));
    }

如果删除CURLOPT_POSTQUOTE部分,则文件下载正常。我还尝试了一些postquote数组的不同组合:

    curl_setopt($curl, CURLOPT_POSTQUOTE, array("RNFR $remoteFile RNTO $remoteFile.downloaded"));
    curl_setopt($curl, CURLOPT_POSTQUOTE, array("-RNFR $remoteFile", "-RNTO $remoteFile.downloaded"));
    curl_setopt($curl, CURLOPT_POSTQUOTE, array("-RNFR $remoteFile -RNTO $remoteFile.downloaded"));
    curl_setopt($curl, CURLOPT_POSTQUOTE, array("rename $remoteFile $remoteFile.downloaded"));

我一直看到的错误:

ERROR  : QUOT string not accepted: -RNFR $remoteFile -RNTO $remoteFile.downloaded

1 个答案:

答案 0 :(得分:3)

如果将来有人发现自己。

我的问题是$remoteFile解决了/remote_folder/remote_file.txt这样的问题,但由于我的ftp连接已经包含了ftp://www.example.com/remote_folder/remote_file.txt这样的文件夹,我不应该指定文件夹RNFRRNTO