![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Witam
Z góry proszę o wyrozumiałość, nie mam doświadczenia przy pracy z danymi binarnymi ani w PHP ani w żadnym innym języku, szukam pomocy, jak to ugryść. Chce wygenerować plik w formacie ZIP zawierający kilka plików, problem polega na tym, że pliki te są znacznej wielkości więc nie mogę użyć bibliteki ZLIB czy jakiejkolwiek innej do wygenerowania całego archiwum w pamięci, muszę zrobić to na zasadzie fread()/echo, poziom kompresji ma być zerowy (store). W tym celu musze nijako zaimplementować format ZIP w php. Specyfikację znalazłem tutaj: http://www.pkware.com/documents/casestudies/APPNOTE.TXT Załózmy że chce mieć w takim archiwum dwa PUSTE pliki o nazwach kolejno '1.txt' i '2.txt'. Kod [local file header 1] [file data 1] [data descriptor 1] . . . [local file header n] [file data n] [data descriptor n] [archive decryption header] [archive extra data record] [central directory] [zip64 end of central directory record] [zip64 end of central directory locator] [end of central directory record] Rozumiem że muszę podać sumy kontrole plików w CRC-32, OK, ale czy musze też podac sumę kontrolną całego pliku ZIP? Czy ktoś mógłby objaśnić jak się za to zabrać? Z góry dziękuję za pomoc. Ten post edytował wNogachSpisz 5.10.2011, 20:21:17 |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 677 Pomógł: 89 Dołączył: 31.08.2003 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Jeśli nie chcesz kompresować plików, a jedynie złączyć je w jeden, to może bardziej oczywistym rozwiązaniem będzie zastosowanie formatu TAR, którego podstawową specyfikację znajdziesz np. na http://en.wikipedia.org/wiki/Tar_(file_format)
-------------------- |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Dobry pomysł..
http://www.phpclasses.org/browse/file/1779.html Ten post edytował wNogachSpisz 8.10.2011, 13:08:20 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 03:53 |