1

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

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

4

3 回答 3

1

猜测权限是 1363。换句话说,八进制(755)。这是一个完整的猜测,但我建议 chmod 函数采用十进制模式,而不是八进制模式。

于 2009-11-27T14:23:13.563 回答
1

0755 和 '0755' 与如此证明的不同:

<?php echo '0755' == 0755 ? 'equal' : 'not equal'; ?>;

为此,请尝试删除 0755 附近的单引号。

phpseclib 期望将权限表示为八进制值('0755' 被转换为十进制值 - 不是八进制值)的原因是因为它就是这样ftp_chmod做的,这就是它的Net_SFTP::chmod()模型。(实际上,几乎所有 phpseclib 的 SFTP API 都是以 PHP 的 FTP 扩展 API 为模型的)

于 2009-11-27T17:16:58.037 回答
1

您可以使用

$sftp->chmod(0755, $file);

您不应将权限chmod()作为字符串输入到 phpseclib 函数中。

于 2015-10-26T11:00:26.113 回答