我试过$sftp->chmod('0755', "file.zip");
了$sftp->chmod('0755', "file.zip");
但在这两种情况下,权限都设置为 363。
猜测权限是 1363。换句话说,八进制(755)。这是一个完整的猜测,但我建议 chmod 函数采用十进制模式,而不是八进制模式。
0755 和 '0755' 与如此证明的不同:
<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;
为此,请尝试删除 0755 附近的单引号。
phpseclib 期望将权限表示为八进制值('0755' 被转换为十进制值 - 不是八进制值)的原因是因为它就是这样ftp_chmod
做的,这就是它的Net_SFTP::chmod()
模型。(实际上,几乎所有 phpseclib 的 SFTP API 都是以 PHP 的 FTP 扩展 API 为模型的)
您可以使用
$sftp->chmod(0755, $file);
您不应将权限chmod()
作为字符串输入到 phpseclib 函数中。