Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Problem mit PclZip und PHP

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Problem mit PclZip und PHP

    Hallo,

    ich habe ein Problem PclZip und PHP

    folgenden Code habe ich geschrieben, allerdings packt er die Datei nicht.

    PHP-Code:
    <?php 
    include ("pclzip.lib.php"); 

    $mein_zip_file='//fileserver/ordner1/test.zip';

    $datei'//fileserver/ordner1/test.wav'

    $archive = new PclZip($mein_zip_file); 
    $archive->create($datei); 

    ?>
    Wenn ich es allerdings so schreiben dann packt er die Datei.
    Diese liegt, dann allerdings auf dem Webserver.

    PHP-Code:
    <?php 
    include ("pclzip.lib.php"); 

    $mein_zip_file='//fileserver/ordner1/test.zip';

    $datei'test.wav'

    $archive = new PclZip($mein_zip_file); 
    $archive->create($datei); 

    ?>
    Es soll allerdings die Datei vom Fileserver gepackt werden.
    Bitte keine Lösungen mit EXEC oder Shell-Script, dies geht aus Sicherheitsgründen nicht. Übrigens es läuft nur im Intranet...
    Sollte jemand eine Idee haben, auch wenn JavaScript wäre, wäre ich dankbar.

    Ich verzweifel langsam und Cheffe hängt mir im Nacken.


    Danke.


  • #2
    das Problem scheint nicht dein Code zu sein, sondern fehlende Schreibrechte für den www-User auf dem Fileserver - wenn er die Datei zum Packen dort ablegen soll ....

    UPS .. ich seh gerade , dass es am einlesen hängt ... dann würd ich doch mal prüfen, was php zu
    PHP-Code:
    if (file_exists($datei))
       echo 
    "gefunden<br>"
    sagt ?
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

    Kommentar


    • #3
      Danke für den Tip.
      Auf solche einfache Sache komme ich schon nicht mehr...

      PHP-Code:
      if (file_exists($datei)) 
      {
      echo 
      "<br>Datei vorhanden<br>";
      }
      else
      {
      echo 
      "<br>Datei fehlt<br>";

      Gibt mir aus, dass die Datei vorhanden ist.
      Bei folgender Angabe:
      PHP-Code:
      $datei'//fileserver/ordner1/test.wav'
      Ändere ich hinten das wav, sag er Datei fehlt.
      Also vorhanden ist die Datei, er findet sie auch.

      Freu mich auf weitere Hilfe.
      Danke.

      Kommentar


      • #4
        Ich hab jetzt mal den Tip von oben aufgenommen für den letzten Teil vom Code:

        PHP-Code:
        $archive = new PclZip($mein_zip_file); 
        $archive2 $archive->create($datei); 

        if (
        $archive2 == TRUE
        {
        echo 
        "<br>ZIP erstellt<br>";
        }
        else
        {
        echo 
        "<br>Fehler bei der Erstellung<br>";

        Da wird gemeldet: Fehler bei der Erstellung

        Also Fehler kann wohl soweit eingegrentz werden, das es an dem Code hier liegt:

        PHP-Code:
        $archive->create($datei); 
        Da ist allerdings mein Latein vollkommen am Ende.
        Braucht Ihr die pclzip.lib.php vllt dazu? dann poste ich den Code von der PHP-Datei

        Danke.

        Kommentar


        • #5
          erweitere mal deine Zeile

          $archive2 = $archive->create($datei);

          zu

          PHP-Code:
          $archive2 $archive->create($datei) or  die("Error : ".$archive->errorInfo(true)); 
          "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

          Kommentar


          • #6
            ah super danke.

            Jetzt sieht man zumindest was.
            es wird Folgendes ausgegeben:

            Error : PCLZIP_ERR_MISSING_FILE (-4) : File '/fileserver/ordner1/test.wav' does not exist

            OK, dass ist klar, weil /Fileserver gibts auch nicht muß ja //Fileserver heißen.

            So wie muß ich das jetzt umändern, also die variable $datei.
            PHP-Code:
            $datei'//fileserver/ordner1/test.wav'

            Kommentar


            • #7
              ich hab mir mal die Posts auf der Seite angeschaut .. offenbar hat pclzip so ein kleines Problem, wenn der Ordner mit / beginnt ....

              du kannst mal probieren ihm den Pfad mit /// schmackhaft zu machen, wenn er da immer einen führenden slash ignoriert ...

              im anderen Fall ...hab ich leider auch keine Ahnung ...
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

              Kommentar


              • #8
                danke für den Tip mit 3x /, aber leider funzt das auch nciht
                es werden immer soviele / gestrichen, bis nur noch 1 / übrig bleibt.

                Kann ich jemand das PclZip mal ansehen?

                Kommentar


                • #9
                  wie schon geschrieben, hat pclzip wohl ein kleines Problem, wenn es sowohl um den aktuellen Ordner mit ./ geht, als auch mit // losgeht ...

                  auf der "Heimatseite" des scripts weist der Anbieter selbst darauf hin (FAQ-Abschnitt) .

                  als eher unschönen Work-around könntest du die Datei mit PHP (der findet die ja offensichtlich) on the fly auf deinen Webserver kopieren - dann liegt sie ja lokal und das Packen hat ja schon geklappt - nach dem Packen kannst du die on the fly-Kopie wieder löschen, aber gerade bei größeren Dateien ist das alles andere als performant

                  alternativ kannst du dir ja mal den Quellcode anschauen - der scheint ja selbst in PHP vorzuliegen .... dann kommentierst du die Zeilen mal aus , die führende / abschneiden und probierst es dann noch einmal ....
                  "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                  Kommentar


                  • #10
                    Hallo,

                    ich hab das Problem gelöst.
                    Mit eurer Hilfe auf den richtigen Weg und dann hab ich die PclZip umgeschreiben.

                    Alles raus was damit zu tun hat, und viola es funzt.

                    Großes Danke an die Hilfe und auf die Unterstützung.

                    Merci...

                    Kommentar


                    • #11
                      Zitat von eagle275 Beitrag anzeigen
                      als eher unschönen Work-around könntest du die Datei mit PHP (der findet die ja offensichtlich) on the fly auf deinen Webserver kopieren - dann liegt sie ja lokal und das Packen hat ja schon geklappt - nach dem Packen kannst du die on the fly-Kopie wieder löschen, aber gerade bei größeren Dateien ist das alles andere als performant
                      Das Performance-Problem dabei könnte man ja ggf. umgehen, in dem man nicht die Dateien kopiert, sondern SymLinks verwendet.

                      Kommentar


                      • #12
                        symlinks gehen über Servergrenzen hinweg?
                        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste

                        Kommentar

                        Lädt...
                        X