Я использую 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 имеет полный доступ к папке и файлам.
Я уже попробовала
define (‘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)
Я открыт для предложений.
Задача ещё не решена.
Других решений пока нет …