如何使用 phpseclib 更改 sFTP 服务器上文件的权限?
题
我试过 $sftp->chmod('0755', "file.zip");
和 $sftp->chmod('0755', "file.zip");
但在这两种情况下,权限都被设置为 363。
解决方案
0755 和“0755”不是同一件事,如下所示:
<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;
为此,尝试删除 0755 周围的单引号。
phpseclib 期望权限表示为八进制值(“0755”被转换为十进制值 - 而不是八进制值)的原因是因为这就是 ftp_chmod
这样做了,就是这样 Net_SFTP::chmod()
是仿照的。(实际上,几乎所有 phpseclib 的 SFTP API 都是根据 PHP 的 FTP 扩展 API 建模的)
其他提示
猜测权限是1363。换句话说,八进制(755)。这完全是猜测,但我建议 chmod 函数采用十进制模式,而不是八进制模式。
您可以使用
$sftp->chmod(0755, $file);
您不应将权限输入 phpseclib chmod()
函数作为字符串。
不隶属于 StackOverflow