#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.