我已经使用phpseclib 2年没有瑕疵,突然间sftp" get()"函数开始给我NET_SFTP_STATUS_NO_SUCH_FILE:找不到文件。
我有一个如下所示的循环:
foreach ($sftp->rawlist() as $filename => $details) {
// open only files no directories
if ($details['type'] == 1) {
// reads file to string
$sftp_data[$filename] .= $sftp->get($filename);
$files_counter++;
}
}
一切正常,rawlist()函数循环遍历文件,但当脚本获得$ sftp-> get($ filename)函数时会出现问题。
文件夹的权限未更改,sftp用户可以完全访问文件夹和文件。
我已经尝试了
定义(' NET_SFTP_LOGGING',NET_SFTP_LOG_COMPLEX);
用于调试,但没有解决问题。
这是$ sftp-> getSFTPLog()输出:
[0] => -> NET_SFTP_INIT (0.0008s)
[1] => <- NET_SFTP_VERSION (0.0009s)
[2] => -> NET_SFTP_REALPATH (0.0004s)
[3] => <- NET_SFTP_NAME (0.001s)
[4] => -> NET_SFTP_REALPATH (0.0005s)
[5] => <- NET_SFTP_NAME (0.001s)
[6] => -> NET_SFTP_OPENDIR (0.0005s)
[7] => <- NET_SFTP_HANDLE (0.0018s)
[8] => -> NET_SFTP_CLOSE (0.0005s)
[9] => <- NET_SFTP_STATUS (0.0009s)
[10] => -> NET_SFTP_OPENDIR (0.0005s)
[11] => <- NET_SFTP_HANDLE (0.0017s)
[12] => -> NET_SFTP_READDIR (0.0004s)
[13] => <- NET_SFTP_NAME (0.001s)
[14] => -> NET_SFTP_READDIR (0.0004s)
[15] => <- NET_SFTP_STATUS (0.0009s)
[16] => -> NET_SFTP_CLOSE (0.0004s)
[17] => <- NET_SFTP_STATUS (0.001s)
[18] => -> NET_SFTP_OPEN (0.0005s)
[19] => <- NET_SFTP_STATUS (0.001s)
[20] => -> NET_SFTP_OPENDIR (0.0005s)
[21] => <- NET_SFTP_HANDLE (0.0017s)
[22] => -> NET_SFTP_READDIR (0.0004s)
[23] => <- NET_SFTP_NAME (0.0011s)
[24] => -> NET_SFTP_READDIR (0.0004s)
[25] => <- NET_SFTP_STATUS (0.001s)
[26] => -> NET_SFTP_CLOSE (0.0004s)
[27] => <- NET_SFTP_STATUS (0.0009s)
[28] => -> NET_SFTP_OPEN (0.0005s)
[29] => <- NET_SFTP_STATUS (0.0009s)
[30] => -> NET_SFTP_OPEN (0.0002s)
[31] => <- NET_SFTP_STATUS (0.0009s)
我愿意接受建议。