Datei unkomprimiert in Zip Verzeichnis

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

  • Datei unkomprimiert in Zip Verzeichnis

    Hallo PHP Community,

    ich arbeite gerade an einer dynamischen EPub Generierung. Dabei habe ich das Problem das ich eine Datei unkomprimiert in ein Zip Verzeichnis übertragen muss.

    PHP-Code:
    $epub->add_file('application/epub+zip''mimetype'$tstamp); 
    Gibt es die Möglichkeit bei add_file noch mitzuteilen das die Datei nicht komprimiert werden soll?

    Über Antworten würde ich mich sehr freuen.

    Grüße Yvon
    Zuletzt geändert von yfolz; 27.05.2010, 11:15.

  • #2
    Hallo und willkommen im Forum,

    Code gehört in die entsprechenden Tags (siehe Signatur).

    Die erwähnte Methode add_file gehört nochmal zu welcher Klasse? Hast du schon in der Doku zu dieser Klasse nachgesehen?

    PHP kann ZIP-Archive entpacken, aber ob das mit dieser Klasse on the fly möglich ist, weiß ich nicht.

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Hallo AmicaNoctis,

      ich werde mir die Einhaltung der Foreneingabe merken für die nächsten Posts. Ja, es geht um die Zip Klasse auf die Du im Link verwiesen hast. Bei meinen Netzrecherchen PHP :: Request #41243 :: How to use ZIPARCHIVE::CM_STORE stand es gehe nicht. Das war Stand 2006. Sonst bin ich leider nicht weiter fündig geworden.

      Gruß Yvon

      Kommentar


      • #4
        Zitat von yfolz Beitrag anzeigen
        ich werde mir die Einhaltung der Foreneingabe merken für die nächsten Posts.
        Es gibt auch einen Ändern-Button mit dem man das nachholen kann.

        Zitat von yfolz Beitrag anzeigen
        Ja, es geht um die Zip Klasse auf die Du im Link verwiesen hast.
        Glaub ich weniger. Erstens heißt sie dort addFile (ohne Unterstrich) und zweitens passen deine Parameter irgendwie nicht zu deren Signatur.

        Du redest von irgendeiner anderen, vermutlich inoffiziellen Klasse, was es extrem schwer macht, dir irgendwie zu helfen.

        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
        Super, danke!
        [/COLOR]

        Kommentar


        • #5
          Is there a way to create an uncompressed zip from PHP? - Stack Overflow

          Kommentar


          • #6
            Sag mal, ist das die Klasse, die du benutzt? DevNetwork Forums • View topic - Zip class

            Wenn ja, warum kannst du das nicht gleich sagen?
            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
            Super, danke!
            [/COLOR]

            Kommentar


            • #7
              Okay,

              Änderung im Beitrag oben gemacht

              Ja, ich benutze eine Klasse von Welcome to the PHP Classes Repository - PHP Classes

              Hier ein Auszug:

              PHP-Code:
               function ZipCreate($_ztype 'gzip')
                {
                  
              $this->filedata '';
                  
              $this->cntrldir '';
                  
              $this->comment  '';
                  
              $this->offset   0;
                  
              $this->entries  0;

                  switch(
              strtolower($_ztype))
                  {
                    case 
              'gzip' :
                      if (!
              function_exists('gzcompress'))
                      {
                        
              trigger_error('Your PHP installation does not support gzip compression'E_USER_ERROR);
                      }

                      
              $this->ztype 'gzip';
                      break;

                    case 
              'bzip2':
                      if (!
              function_exists('bzcompress'))
                      {
                        
              trigger_error('Your PHP installation does not support bzip2 compression'E_USER_ERROR);
                      }

                      
              $this->ztype 'bzip2';
                      break;

                    case 
              'stored':
                      
              $this->ztype 'store';
                      break;

                    default      :
                      
              // default to no (Stored) compression type for anything else
                      
              $notice_msg  'Unsupported compression type (' $_ztype ') using Stored instead';
                      
              $this->ztype 'store';
                      
              trigger_error($notice_msgE_USER_NOTICE);
                  }
                } 
              Auf dem Server ist BZip2 installiert, läuft unter Linux.

              Gruß Yvon

              Kommentar


              • #8
                Na dann:
                PHP-Code:
                $epub->ztype 'store'
                um die nächste Datei unkomprimiert zu speichern, danach setzt du es wieder zurück auf den Typ, den du im Konstruktor übergeben hast.
                [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                Super, danke!
                [/COLOR]

                Kommentar


                • #9
                  Also müsste es folgendermassen aussehen:

                  PHP-Code:
                  $prev_encoding $epub->ztype;
                  $epub->ztype 'store';
                  //Mimetyp darf nicht komprimiert werden
                  $epub->add_file('application/epub+zip''mimetype'$tstamp);
                  $epub->ztype $prev_encoding;
                  $epub->ztype 'bzip2';
                  // add container - komprimierte files
                  $epub->add_file($container'META-INF/container.xml'$tstamp); 
                  ...

                  Aber schon mal vielen Dank für Deine Mühe!
                  Komischerweise ist das doofe mimetyp immer noch komprimiert, oder ich hab' da noch einen Dreher drinnen.

                  Kommentar


                  • #10
                    PHP-Code:
                    $epub->ztype $prev_encoding// das ist besser
                    $epub->ztype 'bzip2';        // das kann weg 
                    Zitat von yfolz Beitrag anzeigen
                    Komischerweise ist das doofe mimetyp immer noch komprimiert
                    Kann ich mir nicht vorstellen, der Code ist korrekt. Woher weißt du denn, dass es komprimiert ist?
                    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                    Super, danke!
                    [/COLOR]

                    Kommentar


                    • #11
                      Das gibt mir der EPubchecker von Google aus. Wenn ich die Datei mimetyp von Hand aus reinpacke mit Kompressionsmethode "normal" in WinRar funktioniert es anschliessend.

                      Das ist der ganze "Pack Code", der auf die Klasse zugreift

                      PHP-Code:
                      $prev_encoding $epub->ztype;
                      $epub->ztype 'store';
                      //Mimetyp darf nicht komprimiert werden
                      $epub->add_file('application/epub+zip''mimetype'$tstamp);

                      $epub->ztype $prev_encoding;

                      // add container
                      $epub->add_file($container'META-INF/container.xml'$tstamp);

                      // add opf
                      $epub->add_file($opf'OEBPS/content.opf'$tstamp);

                      // add toc
                      $epub->add_file($toc'OEBPS/tox.ncx'$tstamp);

                      //add cover
                      $epub->add_file($cover'OEBPS/cover.xhtml'$tstamp);

                      //add styles
                      $epub->add_file($style'OEBPS/style.css'$tstamp);


                      //add opener
                      $epub->add_file($opener'OEBPS/Opener.xhtml'$tstamp);
                      //add chapters
                      $epub->add_file($chapter'OEBPS/Kapitel1.xhtml'$tstamp);
                      //add infos
                      $epub->add_file($infos'OEBPS/Infos.xhtml'$tstamp);

                      //add backcover
                      //$epub->add_file($backcover, 'OEBPS/backcover.xhtml', $tstamp);

                      // add your xhtml and CSS and pictures and fonts here

                      // finish it up and download
                      $output_file $epub->build_zip();
                      $output_name $story['title'] . '.epub';
                      $output_mime 'application/epub+zip'
                      Zuletzt geändert von yfolz; 27.05.2010, 11:57.

                      Kommentar


                      • #12
                        Kannst du das fertige ZIP mal als Anhang hinzufügen?
                        [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                        Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                        Super, danke!
                        [/COLOR]

                        Kommentar


                        • #13
                          Datei korrekt

                          Die Datei im Zip Verzeichnis ist jetzt korrekt, alles jetzt nach Spezifikation.

                          Vielen Dank für Deine Mühe.

                          Kommentar


                          • #14
                            Zitat von yfolz Beitrag anzeigen
                            Die Datei im Zip Verzeichnis ist jetzt korrekt.
                            Und woran lag es jetzt?
                            [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
                            Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
                            Super, danke!
                            [/COLOR]

                            Kommentar


                            • #15
                              Dein Weg war richtig, hatte dooferweise einen Schreibfehler im Code. Hatte mich auf den Epub Reader verlassen, dabei war das Problem behoben. Das Format ist grausig.

                              Kommentar

                              Lädt...
                              X