Unzip auf dem Server?

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

  • Unzip auf dem Server?

    Hallo,

    ich will eine Datei (.zip) auf dem Server entpacken.
    Ich hab auch einige Threads dafür gefunden. Bei den meisten scheint es daran zu liegen (wenn es nicht klappt), daß der Server keine entsprechende Bibliothek hat.

    Im phpinfo hab ich folgendes gefunden:

    Apache Environment:
    HTTP_ACCEPT_ENCODING: gzip,deflate

    HTTP Headers Information:
    Accept-Encoding gzip,deflate

    Genügt das für ein Entpacken? Und wenn ja, wie?

    Folgendes hab ich bereits versucht:

    <?PHP

    error_reporting(E_ALL);
    ini_set("display_errors", 'ON');

    exec("unzip test.zip");

    ?>

    Ohne Ergebnis. Das bedeutet, es passiert absolut garnichts, ich bekomme auch keine Warnungen oder Fehlermeldungen.

    Ich versuche das erste Mal etwas zu entpacken auf dem Server,
    hab ich noch etwas vergessen?

    Ordner und Datei hab ich mal vorsichtshalber auf 777 gesetzt.

    Danke schonmal und Grüße,
    Coni
    Gruß, Coni
    ~~ codito ergo sum - ich code, also bin ich! ~~

  • #2
    Mir fällt grad ein - muß ich das vielleicht in eine Variable speichern und extra speichern?
    Bin davon ausgegangen, daß es einfach die vorhandenen Dateien in den gleichen Ordner speichert...
    Gruß, Coni
    ~~ codito ergo sum - ich code, also bin ich! ~~

    Kommentar


    • #3
      Hm, hab jetzt noch einige Threads angeschaut.
      Ich stelle mir das wohl zu einfach vor...
      Gruß, Coni
      ~~ codito ergo sum - ich code, also bin ich! ~~

      Kommentar


      • #4
        Warum auch Exec benutzen, schau dir doch mal lieber die Zip Extension bzw. zlib an. Wenn dein Hoster die nicht bereit stellt mal höflich anfragen, die meisten hoster haben mehrere, nicht unbedingt homogene Umgebungen oder sind bereit, sowas nachzurüsten.

        Im Zweifelsfall ist zip aber auch nicht sonderlich schwer selber komplett in php zu schreiben.

        Kommentar


        • #5
          Danke!
          Hab jetzt eine kleine Funktion aus verschiedenen Scripten, die ich hier und bei google gefunden habe, zusammengebastelt, die lokal funktioniert:

          PHP-Code:
          if (function_exists('zip_open'))
          {
              
          $zip_datei '$pfad';

              
          $ziel_ordner './test/';

              if (
          file_exists($zip_datei) && ($zip zip_open($zip_datei)))
              {
                  while(
          $zip_entry zip_read($zip))
                  {
                      
          $file_name zip_entry_name($zip_entry);
                      
          $file_size zip_entry_filesize($zip_entry);
                      
          $comp_meth zip_entry_compressionmethod($zip_entry);

                      if (
          zip_entry_open($zip$zip_entry'rb'))
                      {
                          
          $buffer zip_entry_read($zip_entry$file_size);

                          if (
          preg_match('/\/$/'$file_name) && ($comp_meth == 'stored'))
                          {
                              
                              
          $fp fopen($ziel_ordner $file_name'wb');
                              
          fwrite($fp$buffer);
                              
          fclose($fp);

                          
          zip_entry_close($zip_entry);
                      }
                  }

                  
          zip_close($zip);
              }
              else
                  echo 
          'Nix Datei';
          }
          else
              echo   
          'geht nicht'

          Auf dem Server:

          Fatal error: Call to undefined function: zip_open() in /... on line 50

          Tja, da fehlt mir wohl die lib... Mist!!

          Eine ZIP-Funktionalität selbst basteln, traue ich mir nicht zu, wüßte garnicht, wie ich da ansetzen soll!
          Gruß, Coni
          ~~ codito ergo sum - ich code, also bin ich! ~~

          Kommentar


          • #6
            Wie ein zip file aufgebaut ist steht im zb. RFC 1952. da Guckst du dir den zweiten Abschnitt an und schreibst dir ein paar Funktionen (min. 2, zip und unzip ), die genau das machen, was da seht.

            Alternativ gibts auch schon fertige Klassen bei google

            Kommentar


            • #7
              Danke für die Hilfe.
              So viel Zeit hab ich allerdings nicht, mich in das Thema soweit einzuarbeiten und dann auch noch das Script zu basteln.
              Klassen habe ich einige gefunden, aber alle viel zu mächtig und die auszumisten (vor allem, weil ich ja jede Zeile Code, die ich löschen will, vorher verstehen muß), würde genauso lange dauern.

              Ich hab jetzt mal beim Provider angefragt, ob die mir ZIP einrichten. Wenn ich das richtig verstanden habe, müssen die gar nichts neu installieren, sondern nur die ini ändern.
              Gruß, Coni
              ~~ codito ergo sum - ich code, also bin ich! ~~

              Kommentar

              Lädt...
              X