Ari: Download mehrerer Datein

Hallo Leute,

ich möchte auf einem Linux-Webserver die Möglichkeit haben, über einen Link eine Datensicherung von
upgeloadeten Userdateien zu realisieren. Ich habe im Forumsarchiv diesbezüglich nur einen Hinweis gefunden, dass
dieses in Perl zu realisieren sei. http://forum.de.selfhtml.org/archiv/2002/11/t28492/#m154349

Bietet PHP eine Lösung, die es ermöglicht mehrere Dateien in eine Zip-Archiv zu packen, um dieses zip-File dann
zum Download anzubieten? Etwa mittels der GZ-Funktionen?

Gibt es möglicherweise noch bessere Lösungen ein Packet von Dateien downzuloaden?

Danke

Ari

  1. Hello,

    Bietet PHP eine Lösung, die es ermöglicht mehrere Dateien in eine Zip-Archiv zu packen, um dieses zip-File dann
    zum Download anzubieten? Etwa mittels der GZ-Funktionen?

    mWn nur über den Umweg system() oder exec() und die Verwendung 'tar -czf <tarname> <filelist>'

    oder ein ähnliches Konstrukt.

    Und dann anschließend dieses Archiv zum Download anbieten.

    Harzliche Grüße vom Berg
    esst mehr http://www.harte-harzer.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hiho,

      nein. Man kann auch mit PHP direkt gz-Dateien erzeugen erzeugen und daraus sogar (mit etwas Arbeite) auch gleich gültige zip-Files.
      Das einzige Problem das sich ergibt ist das es gewöhnlich ein Memory-Limit für PHP gibt und wenn man über PHP Zip-Dateien packen will schlägt dieses Limit voll zu Buche. Also wenn man nicht irgend eine clevere Lösung über temporäre Dateien findet stösst man recht schnell an die Grenzen.

      Literatur:
      http://www.php.net/manual/en/function.gzcompress.php
      http://www.php.net/manual/en/function.bzcompress.php
      http://www.zend.com/zend/spotlight/creating-zip-files1.php
      http://www.zend.com/zend/spotlight/creating-zip-files2.php
      http://www.zend.com/zend/spotlight/creating-zip-files3.php

      (vor allem die letzten 3 sind sehr interresant)

      Grüsse

      Marc

      1. Hello,

        nein. Man kann auch mit PHP direkt gz-Dateien erzeugen erzeugen und daraus sogar (mit etwas Arbeite) auch gleich gültige zip-Files.

        Was heißt hier 'nein'?
        Seit wann kann man mit PHP Tarballs erzeugen?
        Um die "losen" Zip-Files ging es gar nicht!

        Harzliche Grüße vom Berg
        esst mehr http://www.harte-harzer.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hiho,

          Was heißt hier 'nein'?

          Nein heisst: "Du hast nicht recht"

          Die Frage war kann man mit PHP mehrere Dateien in ein zip File packen und du hast gesagt deines wissens nach nur mit system(). Und darauf habe ich geantwortet: "Nein" :)

          Marc

          1. Hello,

            Was heißt hier 'nein'?

            Nein heisst: "Du hast nicht recht"

            Die Frage war kann man mit PHP mehrere Dateien in ein zip File packen und du hast gesagt deines wissens nach nur mit system(). Und darauf habe ich geantwortet: "Nein" :)

            Und wie ist das mit Standard-PHP möglich? Das kann ich immer noch nicht entdecken.
            Unter Einbeziehung von zusätzlichen Libs ist das alles kein Problem! Nur ob die auf einem normalen Shared Host auch zur Verfügung stehen, wage ich zu bezweifeln.

            Harzliche Grüße vom Berg
            esst mehr http://www.harte-harzer.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hiho,

              Und wie ist das mit Standard-PHP möglich? Das kann ich immer noch nicht entdecken.

              zlib ist eigentlich ne gängige Library, die bei allen mir bekannten Hostern standardmässig mitinstaliert war. Selbst bei solchen, die sonst normalerweise eher restriktiv sind.

              Marc

              1. Hiho,

                nachtrag. Laut der PHP Dokumentation ist noch nicht mal die Rede davon, das man die zlib braucht. Weiss jetzt nicht ob die einfach nur schlampig ist oder ob es wirklich ohne geht...

                Marc

            2. Hi,

              Und wie ist das mit Standard-PHP möglich?

              Prinzipiell wie mit jeder anderen Programmiersprache auch.

              Unter Einbeziehung von zusätzlichen Libs ist das alles kein Problem! Nur ob die auf einem normalen Shared Host auch zur Verfügung stehen, wage ich zu bezweifeln.

              ZLib? Doch, ist IMHO usus.

              Ansonsten: Es gibt auch ZIPs ohne Kompression. So kompliziert ist das ZIP-Format nicht - das läßt sich sogar locker ohne Doku entschlüsseln. Und TAR ist ja noch viel einfacher ...

              Gruß, Cybaer

              PS: TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES bietet übrigens genau das: Ist ZLib vorhanden können komprimierte ZIPs erstellt werden, wenn nicht nur unkomprimierte. Und BTW: Das Archiv muß auch nicht in eine Datei geschrieben werden, es kann im Speicher erstellt und direkt gesendet werden.

              --
              Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!
              1. Hiho,

                Ansonsten: Es gibt auch ZIPs ohne Kompression.

                Und (zumindest in der Theorie) ist auch das komprimieren gar nicht so schwierig. Also wenn jemand zu viel Zeit hat. Man müsste eigentlich auch das komprimieren direkt mit PHP realisieren können. Ohne irgendwelche zusätzlichen Libs :)

                Marc

      2. Hallo,

        danke erstmal!
        Zend ist der Tipp!

        Gruß

        Ari

  2. Hi,

    Bietet PHP eine Lösung, die es ermöglicht mehrere Dateien in eine Zip-Archiv zu packen, um dieses zip-File dann
    zum Download anzubieten? Etwa mittels der GZ-Funktionen?

    Eine klitzekleine, schnucklige Klasse: PHPZip
    Eine größere Klasse: TAR/GZIP/BZIP2/ZIP ARCHIVE CLASSES

    Gruß, Cybaer

    --
    Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!