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