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の任意のプロセスでのファイル作成は、0777forディレクトリと0666forファイルを使用しますumask、最終的なアクセス許可がどのような値になるかによって異なります。デフォルトでは、umask値は;0022のようなファイルを作成します。0644引き算のように機能します。

したがって、を0にリセットすると、umaskおそらく必要なものが得られます。

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 に答える