получение файла с помощью SFTP с cURL

#php #curl #ftp #sftp

#php #curl #ftp #sftp

Вопрос:

Кажется, я не могу загрузить файл через SFTP, используя cURL.

     $c = curl_init("sftp://$user:$pass@/someserver.com/$filename");
    $fh = fopen($filename, 'w') or die($php_errormsg);
    curl_setopt($c, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
    curl_setopt($c, CURLOPT_FILE, $fh);
    curl_exec($c);
    curl_close($c);
  

Я делаю что-то не так? Большое спасибо за вашу помощь

Мишель

Комментарии:

1. curl_error() может использоваться для просмотра ошибок

2. Какую ошибку вы получаете? Если это пустой экран, вставьте в свой код несколько операторов echo или printf и посмотрите, в какой строке происходит сбой.

Ответ №1:

да, у вас есть / продолжается ваше доменное имя.

 $c = curl_init("sftp://$user:$pass@someserver.com/$filename");
$fh = fopen($filename, 'w') or die($php_errormsg);
curl_setopt($c, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($c, CURLOPT_FILE, $fh);
curl_exec($c);
curl_close($c);
  

Ответ №2:

Libcurl, используемый на этом сервере, должен иметь поддержку sftp, скомпилированную в. Просмотр кода возврата покажет вам, поддерживается он или нет. Если нет, то вам придется попросить администратора сервера обновить libcurl.