无法在scp ssh中复制带空格的文件名

时间:2015-05-12 14:34:04

标签: php ssh scp

我无法使用ssh2_scp_recv()函数在文件名中复制带有空格的文件。这是实际存储在服务器中的文件名testfile-03_23_15 11 02 AM.csv。 我的代码在这里

if ($file == "testfile-03_23_15 11 02 AM.csv"){

    if(!ssh2_scp_recv($connection,$remoteDir .$file, $localDir . $file)){
        echo "Could not download: ", $remoteDir, $file, "\n";
    }
}

如果你知道,请帮助我。 感谢。

2 个答案:

答案 0 :(得分:1)

使用phpseclib:

<?php
include 'phpseclib/Net/SSH2.php';
include 'phpseclib/Net/SCP.php';

$ssh = new Net_SSH2('www.domain.tld');
if (!$ssh->login('username', 'password')) {
    exit('bad login');
}
$scp = new Net_SCP($ssh);
$scp->get('file name with spaces');

答案 1 :(得分:0)

试试这个:

 ssh2_scp_recv($connection,"\"".$remote_file_name."\"",$local_path."/".$remote_file_name); 

来源:php.net

它说:试图获取名称中包含空格的远程文件? 永远不要忘记在远程文件名中使用引号,但永远不要在本地名称中使用引号。