dynamisch dateien zippen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • dynamisch dateien zippen

    hallöle
    kann ich mit php (die entsprechenden rechte vorrausgesetzt) verschiedene dateien (ergeben sich aus suchabfrage) in EINE datei zippen, die man sich dann downloaden kann. gzip ist ja auch jedem linux-rechner drauf (denke ich).
    gruss
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

  • #2
    Würde ich mit Perl machen, da gehts super einfach:
    Es gibt Archive::Zip oder auch Archive::Tar.

    Ich habe genau heute auch die gleiche Aufgabe (nur halt mit ZIP) lösen müssen, habe dann auf Perl zugegriffen, weil es im PHP Manual immer hieß, nur Lesezugriff auf ZIP Archive möglich

    Aber vielleicht geht es mit irgendeiner Extension doch.
    PS: Es gibt gzopen(). Kannst es ja mal probieren.
    [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
    [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
    [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

    © Harald Schmidt

    Kommentar


    • #3
      ach gottegott
      hab vor einem jahr zum letzten mal mit perl programmiert, naja mal probieren.
      danke
      peter
      Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
      Meine Seite

      Kommentar


      • #4
        Code:
        use Archive::Zip qw( :ERROR_CODES :CONSTANTS );
        use Archive::Zip::Tree;
        my $zip = Archive::Zip->new();
        $zip->addTree("Verzeichnis",""); 
        $zip->writeToFileNamed("test.zip");
        Packt alles (mit Unterverzeichnissen) aus dem Verzeichnis in die Zip Datei test.zip

        Wie das mit PHP und Gzip geht, weiß ich leider nicht.

        Ach so: Benötigt das Modul Archive::Zip, zu haben bei CPAN oder für Windows mit PPM (name: archive-zip)
        Zuletzt geändert von Troublegum; 15.05.2002, 15:53.
        [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
        [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
        [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

        © Harald Schmidt

        Kommentar


        • #5
          Hallo,

          schau mal hier: http://www.zend.com/codex.php?id=696&single=1

          Gruß Jan

          Kommentar


          • #6
            @JanS

            hast du schonmal das script ausprobiert ?!

            bei mir funktioniert es gar nicht!

            Kommentar


            • #7
              Hi,

              ja bei mir funktioniert es. Es muß aber zlib installiert sein. Ob es installiert ist, kannst Du über phpinfo() checken.

              Gruß Jan

              Kommentar


              • #8
                also zlib ist bei mir installiert.

                nur leider bekomme ich keine dateien in das zip-file.
                PHP-Code:
                // add the subdirectory ... important! 
                $zipfile -> add_dir("bilder/");  

                // add the binary data stored in the string 'filedata' 
                $filedata "(read your file into $filedata)";   
                $zipfile -> add_file($filedata"bilder/file.txt"); 
                wenn ich das so mache bekomme ich nur die datei file.txt in dem zip-file. mehr nicht
                ABER
                PHP-Code:
                // add the subdirectory ... important! 
                $zipfile -> add_dir("bilder/");  

                // add the binary data stored in the string 'filedata' 
                //$filedata = "(read your file into $filedata)";   
                //$zipfile -> add_file($filedata, "bilder/file.txt"); 
                da bekomme ich nur ne leere zip-datei !!!

                WARUM ?!

                Kommentar


                • #9
                  Hm, mal den Slash am Ende der Verzeichnisangabe entfernen.
                  "Ach was soll's? Dann bau ich mir halt meinen eigenen Vergnügungspark mit Blackjack und Nutten." - Bender

                  Kommentar


                  • #10
                    machs am besten so:
                    bild zippen:

                    PHP-Code:
                    <?
                    $dateihandle = fopen("logo.jpg",r); //Hier das Bild angeben
                    $bild = fread($dateihandle,1024000); //Da wird das Bild ausgelesen (bis zu 1MB atm)

                    $zipfile = new zipfile();

                    // add the subdirectory ... important! 
                    $zipfile -> add_dir("/");

                    // add the binary data stored in the string 'filedata' 
                    $filedata = $bild;
                    $zipfile -> add_file($filedata, "bild.jpg");

                    // OR instead of doing that, you can write out the file to the loca disk like this: 
                    $filename = "output.zip"; 
                    $fd = fopen ($filename, "wb"); 
                    $out = fwrite ($fd, $zipfile -> file());
                    fclose ($fd); 

                    // then offer it to the user to download: 
                    echo "<a href=output.zip>Click here to download the new zip file.</a> ";
                    ?>
                    kannst statt bild auch text oder was anderes nehmen.

                    MfG

                    Kommentar


                    • #11
                      super, jetzt funktioniert es, hab noch ne frage:

                      wie kann ich jetzt mehrere dateien in das zip-file packen ?
                      mit einem array oder so ??

                      kann ich auch die dateigröße ändern, wenn es z.b. 2 oder sogar 3 mb sind ??
                      Zuletzt geändert von ; 08.06.2002, 18:06.

                      Kommentar


                      • #12
                        Weitere Dateien fügst mit
                        $zipfile -> add_file($filedata, "bild.jpg");
                        hinzu
                        Musst halt $filedata immer je nach Dateipfad definieren und bild.jpg in den neuen Namen ändern.
                        Das mit der Grösse weiss ich leider net.

                        MfG

                        Kommentar


                        • #13
                          also kann ich das ja dann auch mit den array laufen lassen, müßte ja klappen! *hoff*

                          schade das du es net mit der größe weißt, denn ab ca. 1,5 mb macht er nen fehler und nichts mehr

                          aber vielleicht hat ja noch jemand ne ahnung ??

                          Kommentar


                          • #14
                            jupp.
                            wenn ich zu viele Bilder reinpacke bekomm ich das hier:
                            Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 387673 bytes) in /mnt/ls2/06/079/00000023/htdocs/xxx/inc/gzip.inc on line 147

                            Oder manchmal auch nen Internal Server Error

                            Das ist doof

                            MfG

                            Kommentar


                            • #15
                              genau das gleiche passiert mir auch!

                              muß ich vorher wohl mal schauen wieviele bilder es sind und dementsprechend die zip-datei aufteilen, schade das es anders net klappt.

                              Kommentar

                              Lädt...
                              X