Перемещение файла на FTP-сайт с помощью php cURL - PullRequest
2 голосов
/ 15 марта 2012

У меня есть необходимость переименовать файл после загрузки, используя 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 Ответ

3 голосов
/ 20 марта 2012

На случай, если кто-нибудь окажется здесь в будущем.

Моя проблема заключалась в том, что $remoteFile разрешилось примерно в /remote_folder/remote_file.txt, но поскольку мое ftp-соединение уже включало папку, что-то вроде ftp://www.example.com/remote_folder/remote_file.txt,Я не должен был указывать папку в RNFR и RNTO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...