Как изменить права доступа к файлу на сервере sFTP с помощью phpseclib?
Вопрос
Я попробовал Но в обоих случаях разрешение было установлено вместо 363. $ sftp-> gmod ('0755', " file.zip ");
и $ sftp- > chmod ('0755', " файл. застежка-молния & Quot;); код> р>
Решение
0755 и '0755' - это не то же самое, что продемонстрировано следующим образом:
<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;
Для этого попробуйте удалить одинарные кавычки около 0755.
Причина, по которой phpseclib ожидает, что разрешения будут представлены в виде восьмеричного значения ('0755' приводится к десятичному значению, а не восьмеричному), заключается в том, что именно так ftp_chmod
делает это и вот что Net_SFTP :: chmod ()
моделируется после. (на самом деле, почти все SFTP API phpseclib смоделированы после PHP расширения API FTP)
Другие советы
По предположению, разрешения - 1363. Другими словами, восьмеричное (755). Это полное предположение, но я бы предположил, что функция chmod использует десятичный режим, а не восьмеричный.
Вы можете использовать
$sftp->chmod(0755, $file);
Не следует вводить права доступа в функцию phpseclib chmod ()
в виде строки.