0

我正在编写一个代码来 SCP 一个从 Solaris 10 机器到路由器的文件(再简单不过了)。这是代码:

<?php
$src = "test.txt";
$trg = "test.txt";

echo "Connecting...\n";
$connection = ssh2_connect('myrouter',22);

echo "Authenticating...\n";
ssh2_auth_password($connection, 'mylogin', 'mypassword');

echo "Sending...\n";
ssh2_scp_send($connection, $src, $trg);
?>

这工作得很好,但远程文件名搞砸了:

10/11/2012  10:57p                  15 'test.txt'

注意文件名两边的单引号test.txt

当我使用 Solaris SCP 时,一切正常。这是命令:

solaris10$ scp test.txt mylogin@myrouter:test.txt

远程文件名如下所示:

10/11/2012  11:10p                  15 test.txt

所以问题似乎仅限于PHP。

有没有人有类似的问题?我应该从哪里开始寻找?

远程文件系统是 FAT32。

谢谢你,PN。

4

2 回答 2

1

我在使用 ssh2_scp_send() 时遇到了同样的问题。但是,我切换到使用 ssh2_sftp() 和 fwrite() 并且问题消失了。请参阅http://www.php.net/manual/en/function.ssh2-sftp.php页面上的评论中的示例。

于 2013-07-10T20:02:01.317 回答
0

此页面http://www.php.net/manual/en/function.ssh2-scp-send.php的底部评论指的是您可能遇到的问题;

您可以设置$trg为完整的远程服务器路径吗?

$trg = "/var/www/test.txt";

或者

$trg = "/test.txt";
于 2012-10-12T00:14:54.587 回答