我需要在使用 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
最佳答案
以防将来有人发现自己在这里。
我的问题是 $remoteFile
解析为类似 /remote_folder/remote_file.txt
的内容,但由于我的 ftp 连接已经包含文件夹,类似 ftp ://www.example.com/remote_folder/remote_file.txt
,我不应该在 RNFR
和 RNTO
中指定文件夹。
关于php - 使用 php cURL 在 ftp 站点上移动文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9726796/