![](/img/trans.png)
[英]Unable to send or receive file using ssh2_scp_recv and ssh2_scp_send
[英]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.