如何从sftp服务器访问文件?
<?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服务器访问文件?
尝试以下操作:
$sftp = ssh2_connect('shell.example.com', 22);
ssh2_auth_password($sftp, 'username', 'password');
ssh2_scp_send($sftp, '/local/filename', '/remote/filename', 0644);
ssh2_scp_send($ connection,'test1.txt','foldername/test1.txt',777); 我使用了这段代码。但浏览器正在加载n加载........... – user1122910 2012-03-20 07:20:16
抱歉应该'sft2_scp_send($ sftp,'而不是$ connection – 2012-03-20 07:23:02
Thanks Done .... :) – user1122910 2012-03-20 08:05:13
对于可移植性,我建议使用phpseclib, a pure PHP SFTP implementation。如果你想移动到另一个服务器,使用像PECL SSH2这样深奥的非标准扩展,那么更难做到这一点,而phpseclib使得它非常容易实现即插即用。
这意味着我的文件夹权限?其777. – user1122910 2012-03-20 06:56:10