Я пытаюсь воспроизвести следующую команду для загрузки файла через sftp в моем приложении PHP:
curl -T /var/repo/file -u user:password sftp://server.com/folder/
Приведенные выше команды работают просто отлично (хотя мне пришлось перекомпилировать libcurl на моем компьютере с Ubuntu, чтобы заставить его работать). Однако, когда я попытался использовать PHP-библиотеку curl, все пошло не так хорошо.
Код, который я использую, следующий:
$ch = curl_init();
$localfile = 'file';
$fp = fopen($localfile, 'r');
curl_setopt($ch, CURLOPT_URL, 'sftp://server.com/folder/');
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_USERPWD, 'user:password');
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_SFTP);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($localfile));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_exec ($ch);
$error_no = curl_errno($ch);
curl_close ($ch);
if ($error_no == 0) {
$error = 'File uploaded succesfully.';
} else {
$error = 'File upload error.';
}
echo $error.' '.$error_no;
Это возвращает ошибку 79: CURLE_SSH (79), которую я не знаю, как исправить. Вы сталкивались с этой проблемой? Как ты это починил? Любые идеи?
Спасибо!