Ho un file zip. Lo apro con la libreria php ZipArchive e aggiungo una directory e un file al suo interno. Quando lo estrai con l'unarchiver predefinito di ubuntu, tutto funziona come previsto. Ma quando lo estrai con qualsiasi unarchiver su OS X Snow Leopard (provato con quello predefinito, Keka e The Unarchiver) le autorizzazioni della nuova directory sono 700. Le autorizzazioni previste sono 755.Impostazione delle autorizzazioni in ZipArchive
Quindi, ecco lo zip originale:
DIRECTORY
a.txt
b.txt
Ecco il mio codice:
<?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';
}
e il risultato è:
DIRECTORY -> NEW_DIR -> c.txt
a.txt
b.txt
che è corretto, ma i permessi della directory NEW_DIR sono 700 (drwx ------) invece di 755 se lo estrai sotto osx. Come sistemarlo?
Grazie!
EDIT:
Ecco lo ZipInfo sui file nel mio zip:
$ 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
Interessante aggiornamento: l'origine delle tue voci è memorizzata come "Unix file system" o "Windows FAT": -? –
Sto usando Snow Leopard, penso che sia hfs +. – mimrock