2011-12-13 9 views
5

私はZipファイルを持っています。私はZipArchive PHPライブラリでそれを開き、その中にdirとファイルを追加します。私がubuntuのデフォルトのunarchiverでそれを展開すると、すべてが期待どおりに動作します。しかし、OS X Snow Leopard上のunarchiver(デフォルトのKekaとUnarchiverを試してみた)で解凍すると、新しいディレクトリのパーミッションは700になります。期待されるパーミッションは755です。ZipArchiveのアクセス許可を設定する

これは元のジップです:

DIRECTORY 
a.txt 
b.txt 

ここに私のコードです:

<?php 
$file = 'example.zip'; 
$zip = new ZipArchive; 
$res = $zip->open($file, ZipArchive::CREATE); 
    if ($res === TRUE) { 

    $zip->addEmptyDir('DIRECTORY/NEW_DIR'); 
    $zip->addFromString('DIRECTORY/NEW_DIR/c.txt', 'hellooo'); 
    $zip->close(); 
    } 
    else { 
    print 'error'; 
    } 

、結果は次のとおりです。

DIRECTORY -> NEW_DIR -> c.txt 
a.txt 
b.txt 

正しいですが、osxの下で展開すると、NEW_DIRディレクトリの権限は755ではなく700(drwx ------)になります。それを修正するには?

ありがとうございます!

EDIT:

ここに私のzip内のファイルに関する持つZipInfoです:

$ zipinfo -l test.zip 
(..) 
drwxr-xr-x 3.0 unx  0 bx  0 stor 13-Dec-11 17:43 DIRECTORY/ 
-rw-r--r-- 3.0 unx  533 tx  327 defN 3-Nov-11 01:50 a.txt 
-rw-r--r-- 3.0 unx 91669 tx 32044 defN 3-Nov-11 01:09 b.txt 
-rw----  0.0 fat  0 b-  2 defN 13-Dec-11 18:12 DIRECTORY/new_dir/ 
-rw----  0.0 fat  7 b-  9 defN 14-Dec-11 10:30 DIRECTORY/new_dir/c.txt 
+0

の線に沿って何かを行うことができますアップデート:あなたの起源は "Unixファイルシステム"または "Windows FAT"として保存されます: - ? –

+0

私はSnow Leopardを使用していますが、hfs +だと思います。 – mimrock

答えて

-1

必要なセキュリティ権限を持っている場合、あなたは

興味深い
<?php 
    exec("chmod -R 755 /directory/new_dir"); 
+0

ありがとうございます。実際のアプリケーションでは、ZIPはサーバー上で展開されません。ユーザーはそれをダウンロードすることができ、OSXを使用する場合、上記の許可の問題を満たし、ユーザーフレンドリーではない手動で修正する必要があります。 – mimrock

関連する問題