как получить доступ к файлам с сервера sftp? - PullRequest
0 голосов
/ 20 марта 2012
<?php 
  $localfile = 'test1.txt';
  $fp = fopen ($localfile, "r") or die('Cannot open textfile');
  $connection = ssh2_connect('sftp_server_path/folder',22);
  ssh2_auth_password($connection, 'username', 'password');

  $sftp = ssh2_sftp($connection) or die ("Cannot connect to server");


  $ch = curl_init(); 
  curl_setopt($ch,      CURLOPT_URL,"sftp_server_path/folder/test1.txt");
  curl_setopt($ch, CURLOPT_USERPWD, "username:password");
  curl_setopt($ch, CURLOPT_UPLOAD, 1);
  curl_setopt($ch, CURLOPT_INFILE, $fp);
  if(curl_exec($ch)){
    echo 'File was successfully transferred using SFTP';
  }else{
    echo 'File was unable to be transferred using SFTP';
  }

?>

У меня есть вышеуказанный код для подключения и передачи на сервер sftp, и я запускаю этот код, я получаю сообщение «Файл успешно передан с использованием SFTP».но когда я вижу структуру папок на сервере sftp, я не вижу свой файл передачи на сервере sftp.что именно я должен сделать?

Ответы [ 2 ]

1 голос
/ 20 марта 2012

Попробуйте следующее:

$sftp = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($sftp, 'username', 'password');

ssh2_scp_send($sftp, '/local/filename', '/remote/filename', 0644);

http://sg2.php.net/manual/en/function.ssh2-scp-send.php

0 голосов
/ 22 марта 2012

Для переносимости я бы рекомендовал использовать phpseclib, чистую реализацию PHP SFTP .Если вы хотите перейти на другой сервер с использованием эзотерических нестандартных расширений, таких как PECL SSH2, то сделать это будет сложнее, тогда как phpseclib делает его в значительной степени самонастраиваемым.

...