Pokaż wyniki 1 do 7 z 7

Temat: Zip/Rar - generowanie w locie..

  1. #1
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie Zip/Rar - generowanie w locie..

    Witam

    Opiszę to co chce zrobić na przykładzie:

    Skrypt obsługujący pobieranie plików przez www, posiada on adres dwóch zasobów (plików FTP umieszczonych na zewnętrznym serwerze), ma on za zadanie stworzyć 'w locie' archiwum Zip lub Rar zawierającego oba pliki.

    Przypuszczam że miało by to wyglądać tak:
    1. Generuje nagłowek formatu zip czy rar z informacjami o plikach zawartych w archiwum
    2. W pętli pobieram po kilka KB plik z FTP i wysyłam na wyściej (najlepiej bez żadnego kodowania/przetwarzania/kompresowania)

    Czy jest to możliwe?
    światło mądrości oświetla drogę z nikąd do nikąd

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Tak jest, jak to sie robi zalezy z jakiego jezyka i bibliotek uzyjesz... calosc bedzie w odpowiedniej dokumentacji.
    Najczesiej dziala to tak, ze bedziesz musial pobrac pliki, stworzyc archiwum i dopiero majac calosc wyslac do klienta.
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie

    Cytat Napisał TQM Zobacz post
    calosc bedzie w odpowiedniej dokumentacji
    Np. w której dokumentacji?

    Cytat Napisał TQM Zobacz post
    Najczesiej dziala to tak, ze bedziesz musial pobrac pliki, stworzyc archiwum i dopiero majac calosc wyslac do klienta.
    Odpada, coś takiego można zrobic 3 linijakimi używając każdej jednej bibliteki, bez zagłębiania się w format.
    światło mądrości oświetla drogę z nikąd do nikąd

  4. #4
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie

    //edit

    To czego szukam, to chyba imeplementacja formatu ZIP.

    Specyfikacje znalazłem tutaj: http://www.pkware.com/documents/casestudies/APPNOTE.TXT

    Overall .ZIP file format:

    [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]
    Proste, tyle że ja nigdy nie pisałem żadnego programu generującego dane binarne... mógłby mi ktoś pomóc to ugryść? :/
    Ostatnio edytowane przez lame : 10-05-2011 - 19:56
    światło mądrości oświetla drogę z nikąd do nikąd

  5. #5
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Ja bym zwyczajnie uzyl biblioteki... dodal pliki, kazal zapakowac i wyslal do usera z odpowiednim naglowkiem (podajac nazwe pliku jaki user ma zapisac) i po sprawie. Wszystko zalezy od tego w czym to robisz - biblioteka bibliotece nie rowna
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  6. #6
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie

    Cytat Napisał TQM Zobacz post
    Ja bym zwyczajnie uzyl biblioteki... dodal pliki, kazal zapakowac i wyslal do usera z odpowiednim naglowkiem (podajac nazwe pliku jaki user ma zapisac) i po sprawie.
    Właśnie cały problem polega na tym, ze nie mogę tak zrobić, plików do zarchiwizowania jest powiedzmy 5 mają po 1GB każdy, znajdują się na zewnętrznym serwerze z którym połączenie ma przepustowość 10Mbitów.
    Nie mogę ich wcześniej pobrać w całości.

    W trybie kompresji STORE całą zawartośćpliku siedzi w niezmienionej formie w pliku ZIP, wygląda na to, że jedyne co potrzebuje wiedzieć o pliku aby utworzyć jego nagłówek to nazwa, rozmiar, data utworzenia, data modyfikcji i suma kontrolna w CRC-32, wszystko to mogę ustalić bez wcześniejszego pobierania.

    Jednak nadal nie wiem jak zacząć, specyfikacja mówi, że archiwum ZIP powinno zaczynać się od:
    Kod:
     local file header signature     4 bytes  (0x04034b50)
    Jak wygnenerować takie dane binarne?
    światło mądrości oświetla drogę z nikąd do nikąd

  7. #7
    Zarejestrowany
    Nov 2009
    Postów
    643

    Domyślnie

    Na innym forum podpowiedziano mi, że do moich celów lepiej nadaje się format TAR, zgadzam się z tą opinią w 100%.

    Implementację TAR w PHP znalazłem tutaj:
    tar.class.php - TAR File Manager - PHP Classes

    Temat jest nadal otwarty, bo chciałbym mieć wybór ZIP/RAR/TAR.
    światło mądrości oświetla drogę z nikąd do nikąd

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj