Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ZIP / UNZIP Plików w PHP
Forum PHP.pl > Forum > PHP
Markiz
Czy ktoś mógłby mi opisać lub dać gotowy skrypt do ZIPu i UNZIPu plików ?
Widziałem część tego skryptu w phpMyAdminie, ale jest tam ucięte i pomieszane z resztą. Poczytałem kilkadziesiąt artykułów, ale na żadnej nie jest to normalnie wyjaśnione :/

Za pomoc bardzo dziękuję
-----
Markiz
http://wk.prv.pl
em1X
a ja znalazlem w manualu od razu (wiesz co to wyszukiwarka) ... poza tym na zend masz manuale jak tworzyc zipy
em1X
a w phpMyAdmin masz zip.lib.php .. biblioteke i wszystkie klasy (nic poucinane:P)
Markiz
Cytat
a w phpMyAdmin masz zip.lib.php .. biblioteke i wszystkie klasy (nic poucinane:P)


Przy tworzeniu pliku muszę wykorzystać to:
$zipfile = new zipfile();
$zipfile -> addFile($dump_buffer, $filename . $extbis);
echo $zipfile -> file();

No to powiedz mi co mam/mogę wprowadzić zamiast $dump_buffer ?
Znaczy się co tam się wprowadza ?

Albo jakbyś mógł to powiedz mi jeszcze jak to działa, znaczy się jak zaczynamy od góry...
$zipfile = new zipfile();
tworzy ZIPa ale gdzie mogę dać nazwę tego ZIPa?
$zipfile -> addFile($dump_buffer, $filename . $extbis);
dodaje plik do ZIPa którego nazwy nie wiem gdzie wpisać
echo $zipfile -> file();
tu już tylko wyświetlenie wyników... :/

Za pomoc Ci z góry dziękuję.
Mac
Cytat
Albo jakbyś mógł to powiedz mi jeszcze jak to działa, znaczy się jak zaczynamy od góry...
       $zipfile = new zipfile();
tworzy ZIPa ale gdzie mogę dać nazwę tego ZIPa?  
       $zipfile -> addFile($dump_buffer, $filename . $extbis);
dodaje plik do ZIPa którego nazwy nie wiem gdzie wpisać

$filename to zmienna która przechowuje nazwę pliku do dodania do zipa. smile.gif
Markiz
No to jeszcze został mi ten $dumb_buffer smile.gif
Mac
Cytat
No to jeszcze został mi ten $dumb_buffer smile.gif

$dump_buffer tego nie jestem do konca pewien, ale wydaje mi sie ze jest to wielkość buforu (kompresji). smile.gif
Koshin
$dump_buffer przechowuje tresc jaka ma byc umieszczona w pliku w spakowanych archiwum, czuyli krotko mowiac, to co chcesz spakowac, wrzucasz do $dump_buffer. Ocywiscie w ten sam sposob mozna spakowac kilka plikow na raz. wystarcz zmieniac nazwe pliku i zawartosc tej zmiennej.
Mac
A w takim razie co to jest $extbis?
Bo tego nie wiem.
Podaj jakiś przykład ok?
Bo tej (addFile) funkcji dokładnie nie znam.
Seth
Cytat
A w takim razie co to jest $extbis?
...
Bo tej funkcji dokładnie nie znam.

$extbis to nie funkcja :!:
to jest zmienna :!:

Radze zajrzec do jakiegos kursu o php
Mac
Cytat
Cytat
A w takim razie co to jest $extbis?
...
Bo tej funkcji dokładnie nie znam.

$extbis to nie funkcja :!:
to jest zmienna :!:

Radze zajrzec do jakiegos kursu o php

Wiem, że to nie funkcja, ale chodzi mi oto, że nie znam funkcji addFile wiem, że $extbis to parametr angrysmiley.gif :!: :!: :!:
Seth
Cytat
Wiem, że to nie funkcja, ale chodzi mi oto, że nie znam funkcji addFile wiem, że $extbis to parametr angrysmiley.gif  :!:  :!:  :!:

Ok sorry rolleyes.gif
Mac
Cytat
Czy ktoś mógłby mi opisać lub dać gotowy skrypt do ZIPu i UNZIPu plików ?
Widziałem część tego skryptu w phpMyAdminie, ale jest tam ucięte i pomieszane z resztą. Poczytałem kilkadziesiąt artykułów, ale na żadnej nie jest to normalnie wyjaśnione :/

Za pomoc bardzo dziękuję
-----
Markiz
http://wk.prv.pl

Skrypt (służy do otwierania plików (archiwów *.zip)) (z manuala (http://pl.php.net/manual/pl/ref.zip.php)):
Kod
<?php



$zip = zip_open("/tmp/test2.zip");



if ($zip) {



    while ($zip_entry = zip_read($zip)) {

        echo "Name:               " . zip_entry_name($zip_entry) . "n";

        echo "Actual Filesize:    " . zip_entry_filesize($zip_entry) . "n";

        echo "Compressed Size:    " . zip_entry_compressedsize($zip_entry) . "n";

        echo "Compression Method: " . zip_entry_compressionmethod($zip_entry) . "n";



        if (zip_entry_open($zip, $zip_entry, "r")) {

            echo "File Contents:n";

            $buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));

            echo "$bufn";



            zip_entry_close($zip_entry);

        }

        echo "n";



    }



    zip_close($zip);



}



?>

I znowu dopisek gajacy2 się sprawdza :!:
Zanim zadasz jakieś pytanie zajrzyj do manuala http://pl.php.net/manual/pl/
Markiz
Cytat
I znowu dopisek gajacy2 się sprawdza :!:  
Zanim zadasz jakieś pytanie zajrzyj do manualahttp://pl.php.net/manual/pl/


Co z tego, że masz dopisek, skoro czytać nie umiesz ?;/
Pytałem się o ZIPowanie plików, a ty mi otwieranie dajesz :/
Otwieranie to już tam se opanowałem, ale ZIP teraz :/
Markiz
Cytat
Już znalazłem odpowiedz na moje pytanie:
Na stronie http://www.zend.com/codex.php?id=696&single=1
Markiz
Teraz wystarczy to jakoś przerobić, żeby można było dorzucać coś do tych plików i już bedzie zajebiście smile.gif
castor
Wszystcy sie ciesza ze znalazles !!!

Ale jak juz dlales linka do tegfo skryptu to po co jeszcze wrzucasz ten kod na forum??

Zasmiecasz tylko baze. aaevil.gif

:!: :!: Link i przyklad w zupelnosci by wystarczyl :!: :!:
Markiz
sory, już poprawiłem i zostawiłem tylko linka smile.gif
-----
już się nie gniewasz ?smile.gif
castor
biggrin.gif NIE biggrin.gif
Agresor
Czesc mam problem bo strony robilem w html'u a teraz chcialbym wstawic skrypt php mianowice system newso powiecie mi jak to zorbic? bede wdzieczny za pomoc
Mac
Cytat
Czesc mam problem bo strony robilem w html'u a teraz chcialbym wstawic skrypt php mianowice system newso powiecie mi jak to zorbic? bede wdzieczny za pomoc

Wiesz co to jest wyszukiwarka?
To włącz ją (wyszukiwarkę) i wpisz to czego szukasz, bo ten problem był już omawiany i nie ma sensu wpisywać dwa razy tego samego (w dwóch tematach) smile.gif
Markiz
A czy ktoś mi mógł powiedziec, w jaki sposób ja mogę coś dodać do ZIPa ?tongue.gif
Bo stworzyć ZIPa (teraz widzę), żę to łatwa sprawa. Ale żeby coś dodać do ZIPa to znowóż dla mnie czarna magia :/
Czadus
Hej. Nie zakładam nowego tematu, tylko postanowiłem napisać tutaj. Korzystam z biblioteki zip.lib.php do spakowania pewnej zawartości plików do zipa, po czym wysłania tego do użytkownika. Problem jest nie w samym wysyłaniu zip i jego tworzeniu, ale w dodawaniu zawartości do niego. Poniżej przesyłam ten skrypt:

Kod
    $zap = @mysql_query("SELECT * FROM `zdjecianazwy` WHERE `status`='1' AND `dzial`='".$zm3."';");
    $ile = @mysql_num_rows($zap);
    if($ile>0)
    {
        $zipfile = new zipfile();
        
        while($zap && $dane = @mysql_fetch_array($zap))
        {
            $file = "./grafika/uploadZdjecia/".$dane['dzial']."/1_".$dane['nazwa']."";
            if(file_exists($file)) { $zipfile -> addFile($file, "1_".$dane['nazwa'].""); }
        }
    echo $zipfile -> file();
}


Pliki są dodane do zip-a, nazwy mają, rozszerzenie mając, ale nie mają właściwej zawartości. Otwieram obrazek, który zamiast mieć 7MB, ma kilka kilo i zamiast otwierać się wyskakuje błąd, jakby to nie był plik obrazka.

Proszę o pomoc.

Poprawiłem kod, teraz wszystko jest pakowane poprawnie, poza jedną rzeczą, która mi całą koncepcję niszczy. Aktualnie wygląda to tak:

Kod
$zap = @mysql_query("SELECT * FROM `zdjecianazwy` WHERE `status`='1' AND `dzial`='".$zm3."';");
    $ile = @mysql_num_rows($zap);
    if($ile>0)
    {
        $zipfile = new zipfile();
        while($zap && $dane = @mysql_fetch_array($zap))
        {
            $file = "./grafika/uploadZdjecia/".$dane['dzial']."/1_".$dane['nazwa']."";
                if(file_exists($file))
            {
                if (is_file($file))
                {
                    $fp = fopen ($file, 'rb');
                            $date = fread($fp, filesize($file));
                        fclose ($fp);
                    $zipfile -> addFile($date, "1_".$dane['nazwa']."");
                }
            }
             }
         }
         echo $zipfile -> file();
}


Spakowane pliki pobieram, jest wszystko ok, do momentu, gdy tworzony zip miałby wielkość ponad 30MB. Wówczas zamiast niego otrzymuję zipa 200Bajtowego, którego zresztą nie można otworzyć, gdyż wyskakuje błąd.

Czy jest jakieś ograniczenie?? Albo czy można to zmienić?? Skąd się to bierze?? Czy może zależeć od serwera?? Póki co testuję to na localhost??

Nikt nie jest w stanie mi pomóżquestionmark.gif Może to ustawienia serwera localhost (wamp), które może ograniczają wielkość pobieranego pliku. Nie mam już pomysłów....

Hej. Mam dodatkową informację odnośnie mojego problemu. Wyrzucając nagłówki z klasy zip.lib.php plik oczywiście nie będzie wysłany, ale przy tym tworzonym zipie, który ma niewłaściwy rozmiar, teraz pojawił mi się następujący błąd:

Kod
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 38130122 bytes) in C:\wamp\www\AAA_morphing\include\zip.lib.php on line 242


Co to może dokładnie oznaczać?? Tekst rozumiem, ale nie wiem jak takiemu czemuś zaradzić.
Piniek
http://forum.php.pl/index.php?showtopic=27883

http://forum.php.pl/index.php?showtopic=66616

oto odpowiedz na twoje pytanie.
Czadus
Dzięki, do tego akurat już udało mi się dotrzeć. W każdym razie dzięki wielkie :]

Na serwerze miałem ustawione

Kod
memory_limit = 128M;


Na home.pl mają 64MB. Pytanie, czy wstawiając przed kodem generującym zipa poniższy kod:

Kod
ni_set('memory_limit', '200M');


albo nawet

Kod
ni_set('memory_limit', '300M');


będzie działać poprawnie i przyniesie zamierzone efekty
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.