3

这就是我到目前为止所得到的。我需要能够将 0666 应用于存档中的所有文件。我不能在出口时这样做吗?在取消归档期间或取消归档后更改 chmod 的示例代码是什么?

$zip = new ZipArchive;
if ($zip->open('upload/'. $username . $file_ext) === TRUE) {
$zip->extractTo('dir/' . $username);
$zip->close();
} else {
echo 'failed';
}

感谢所有的帮助!布兰登

4

1 回答 1

3

在目录上设置0666可能不是您想要的 ;-)

Linux 中任何进程中的文件创建都将0777用于目录和0666文件,但这取决于umask最终权限的值。默认情况下,该umask值是0022创建文件,如0644; 它就像减法一样工作。

因此,通过将 重置umask为 0 你可能会得到你需要的东西。

umask(0);
$zip = new ZipArchive;
if ($zip->open('upload/'. $username . $file_ext) === TRUE) {
    $zip->extractTo('dir/' . $username);
    $zip->close();
} else {
    echo 'failed';
}
于 2012-05-02T03:11:07.490 回答