Tôi có một tệp Zip. Tôi mở nó bằng thư viện ZipArchive php, và thêm một thư mục và một tập tin trong đó. Khi tôi giải nén nó với ubuntu mặc định unarchiver tất cả mọi thứ hoạt động như mong đợi. Nhưng khi tôi giải nén nó với bất kỳ unarchiver trên OS X Snow Leopard (đã thử với một mặc định, Keka và The Unarchiver) các điều khoản của thư mục mới là 700. Các quyền dự kiến là 755.Quyền thiết lập trong ZipArchive
Vì vậy, đây là mã zip ban đầu:
DIRECTORY
a.txt
b.txt
Dưới đây là mã của tôi:
<?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';
}
Và kết quả là:
DIRECTORY -> NEW_DIR -> c.txt
a.txt
b.txt
là đúng, nhưng quyền của thư mục NEW_DIR là 700 (drwx ------) thay vì 755 nếu tôi trích xuất nó dưới osx. Làm thế nào để sửa chữa nó?
Cảm ơn!
EDIT:
Đây là zipinfo về các tập tin trong zip của tôi:
$ 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
Thú vị cập nhật: nguồn gốc của các mục của bạn được lưu trữ dưới dạng "Hệ thống tệp Unix" hoặc "Windows FAT": -? –
Tôi đang sử dụng Snow Leopard, tôi nghĩ đó là hfs +. – mimrock