【问题标题】:Moving a file on an ftp site using php cURL使用 php cURL 在 ftp 站点上移动文件
【发布时间】:2012-03-15 19:30:41
【问题描述】:

我需要在使用 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 部分,文件下载正常。我还尝试了后引用数组的几种不同组合:

    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

【问题讨论】:

    标签: php curl ftp


    【解决方案1】:

    以防万一将来有人发现自己在这里。

    我的问题是 $remoteFile 解析为 /remote_folder/remote_file.txt 之类的东西,但由于我的 ftp 连接已经包含文件夹,例如 ftp://www.example.com/remote_folder/remote_file.txt,我不应该在 RNFR 和 @987654325 中指定文件夹@。

    【讨论】:

    • 那么最后要添加到“CURLOPT_POSTQUOTE”列表的两个命令是:RNFR remote_file.txtRNTO remote_file_downloaded.txt
    猜你喜欢
    • 2014-04-11
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 2012-02-07
    • 2014-11-20
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    相关资源
    最近更新 更多