簡體   English   中英

ssh2_scp_recv():無法接收遠程文件

[英]ssh2_scp_recv(): Unable to receive remote file

為了從遠程服務器上載一批文件,我在php程序的for循環中使用ssh2_scp_recv() 它在某些方面效果很好。 但是,當一個文件夾中有67個以上的文件時,它開始顯示錯誤消息為

PHP警告:ssh2_scp_recv():無法接收遠程文件

我使用的程序如下所示:

<?php
$connection = ssh2_connect('host', 22);
ssh2_auth_password($connection, 'user', 'password');

$remote_dir="/remote_dir/";
$local_dir="/local_dir/";

$com ="ls $remote_dir";
$stream = ssh2_exec($connection, $com);
stream_set_blocking($stream,true);
$cmd=fread($stream,4096);

$arr=explode("\n",$cmd);

$total_files=sizeof($arr);

for($i=0;$i<$total_files;$i++){
    $file_name=trim($arr[$i]);
    if($file_name!=''){
        $remote_file=$remote_dir.$file_name;       
        $local_file=$local_dir.$file_name;

        if(ssh2_scp_recv($connection, $remote_file,$local_file)){
            echo "File ".$file_name." was copied to $local_dir<br />";
        }
    }
}

fclose($stream); 

誰能給我一些建議?

一次調用fread()可能無法獲取所有文件名。 使用stream_get_contents讀取直到結尾:

$cmd = stream_get_contents($stream);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM