繁体   English   中英

如何从sftp服务器访问文件?

[英]how to access files from sftp server?

<?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服务器上的传输文件。 我到底要做什么?

请尝试以下操作:

$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/zh/function.ssh2-scp-send.php

为了实现可移植性,我建议您使用phpseclib(纯PHP SFTP实现) 如果您想移至使用深奥的非标准扩展程序(例如PECL SSH2)的另一台服务器,这样做会更加困难,而phpseclib使其即插即用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM