如何使用phpseclib更改sFTP服务器上的文件权限?

时间:2009-11-27 14:18:09

标签: php sftp phpseclib

我尝试了$sftp->chmod('0755', "file.zip");$sftp->chmod('0755', "file.zip");

但在这两种情况下,权限都设置为363​​。

3 个答案:

答案 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()函数作为字符串。