dynamisch dateien zippen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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

    Comment


    • #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

      Comment


      • #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)
        Last edited by 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

        Comment


        • #5
          Hallo,

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

          Gruß Jan

          Comment


          • #6
            @JanS

            hast du schonmal das script ausprobiert ?!

            bei mir funktioniert es gar nicht!

            Comment


            • #7
              Hi,

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

              Gruß Jan

              Comment


              • #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 ?!

                Comment


                • #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

                  Comment


                  • #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

                    Comment


                    • #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 ??
                      Last edited by ; 08-06-2002, 18:06.

                      Comment


                      • #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

                        Comment


                        • #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 ??

                          Comment


                          • #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

                            Comment


                            • #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.

                              Comment

                              Working...
                              X