Karl-Heinz: ZIP und Download-Link

Hallo Leute,

ich betreue ein kleines Geschichtenarchiv und mir wurde die Frage gestellt, ob man nicht auch alle Geschichten auf einmal als PDF downloaden kann.

PDF habe ich bereits eingebaut. Mir wird jetzt PRO Geschichte ein PDF-File erstellt (bzw. nur bei Änderungen auf einer Geschichte neugeneriert).

So - nun habe ich also einen Ordner und 300 PDF-Dateien, die sich pro Scriptdurchlauf ändern KÖNNEN.

Erstes Problem: Der Benutzer soll eine Liste aller 300 Geschichten angezeigt bekommen und hinter jedem Eintrag ein Link auf das PDF-File.
Wenn er aber nun auf den Link klickt, wird ihm die Datei angezeigt statt downgeloadet. Ich habe nun schon unzählige Foreneinträge durchstöbert und jedesmal hieß es, man solle eine ZIP-Datei draus machen, was mich zum zweiten Problem bringt.

Zweites Problem: Wenn ich die ZIP-Klasse verwenden möchte, kommt der Fehler, daß diese nicht existiert - sie MUSS in der php.ini eingebunden werden (installiert), aber ich bin nicht der Provider, sodaß ich eben auch nicht auf diese Zugriff habe.
Gibt es einen PHP-Befehl, mit dem ich diese in meinem Script aktivieren oder eine andere Möglichkeit ZIPs zu erstellen ODER gibt es die Möglichkeit einen Download-Link zu erstellen. Es sollte eben benutzerfreundlich sein, was rechtsklick->speichern unter nicht unbedingt ist.

Danke schonmal im Voraus.

  1. servus Karl,

    So - nun habe ich also einen Ordner und 300 PDF-Dateien, die sich pro Scriptdurchlauf ändern KÖNNEN.

    oha. Mit der Klasse fpdf hättest du dir womöglich einige Arbeitsschritte ersparen können.

    Erstes Problem: Der Benutzer soll eine Liste aller 300 Geschichten angezeigt bekommen und hinter jedem Eintrag ein Link auf das PDF-File.
    Wenn er aber nun auf den Link klickt, wird ihm die Datei angezeigt statt downgeloadet. Ich habe nun schon unzählige Foreneinträge durchstöbert und jedesmal hieß es, man solle eine ZIP-Datei draus machen, was mich zum zweiten Problem bringt.

    Zum Problem, keinen anderen Ansatz finden zu können. In Verbindung mit der Klasse könntest du einen header vorgeben, der zum Download statt zur Anzeige zwingt.

    meine Idee wäre jetzt noch, die PDFs in einer PHP-Datei zu includieren und nen header für die PDF und einen für den Download-Dialog zu schicken.

    der wurzelbert

    --
    Ist es ein Vogel?
    Ist es ein Flugzeug?
    Nein, es ist Reis, Baby!
    1. servus Karl,

      So - nun habe ich also einen Ordner und 300 PDF-Dateien, die sich pro Scriptdurchlauf ändern KÖNNEN.

      oha. Mit der Klasse fpdf hättest du dir womöglich einige Arbeitsschritte ersparen können.

      Das ganze wird per Programm hergestellt, also ich habe dort NULL Arbeit in die Generierung EINZELNER PDFs reingesteckt - es wird der Datensatz aus der Tabelle gelesen, dann wird geprüft, ob es die Datei schon gibt bzw. das Datum älter als der aktuelle Datensatz ist und DANN generiert - Das ist ja auch mein Problem, warum ich das mit zip ned machen kann.

      Erstes Problem: Der Benutzer soll eine Liste aller 300 Geschichten angezeigt bekommen und hinter jedem Eintrag ein Link auf das PDF-File.
      Wenn er aber nun auf den Link klickt, wird ihm die Datei angezeigt statt downgeloadet. Ich habe nun schon unzählige Foreneinträge durchstöbert und jedesmal hieß es, man solle eine ZIP-Datei draus machen, was mich zum zweiten Problem bringt.

      Zum Problem, keinen anderen Ansatz finden zu können. In Verbindung mit der Klasse könntest du einen header vorgeben, der zum Download statt zur Anzeige zwingt.

      meine Idee wäre jetzt noch, die PDFs in einer PHP-Datei zu includieren und nen header für die PDF und einen für den Download-Dialog zu schicken.

      Danke für den Tip - vielleicht mal ausprobieren, aber ich glaub ich muss doch mit meinem Provifer reden - hätte ja sein können, daß es da doch ne Lösung gibt.

      der wurzelbert

  2. Hi!

    Erstes Problem: Der Benutzer soll eine Liste aller 300 Geschichten angezeigt bekommen und hinter jedem Eintrag ein Link auf das PDF-File.
    Wenn er aber nun auf den Link klickt, wird ihm die Datei angezeigt statt downgeloadet. Ich habe nun schon unzählige Foreneinträge durchstöbert und jedesmal hieß es, man solle eine ZIP-Datei draus machen, was mich zum zweiten Problem bringt.

    Was genau passiert, liegt an den jeweiligen Einstellungen im Browser des Anwenders. Allerdings sollte bei jedem gleich sein, dass man mit Rechtsklick und "Speichern unter" (oder ähnlicher Beschriftung) die Datei bei sich ablegen kann. Wenn deine Anwender ihren Browser nicht bedienen können, kannst du sie darauf hinweisen, dass sie es so tun sollen.

    Zweites Problem: Wenn ich die ZIP-Klasse verwenden möchte, kommt der Fehler, daß diese nicht existiert - sie MUSS in der php.ini eingebunden werden (installiert), aber ich bin nicht der Provider, sodaß ich eben auch nicht auf diese Zugriff habe.

    Pech gehabt. Aber du kannst ja mal den Provider fragen, ob er es einbindet.

    Gibt es einen PHP-Befehl, mit dem ich diese in meinem Script aktivieren oder eine andere Möglichkeit ZIPs zu erstellen ODER gibt es die Möglichkeit einen Download-Link zu erstellen. Es sollte eben benutzerfreundlich sein, was rechtsklick->speichern unter nicht unbedingt ist.

    Es gibt keine Do-what-I-mean-Funktion, so dass der Anweder mit einem einzigen Klick stets das jeweils Gewünschte erreichen kann. Was ist an zwei Mausklicks statt einem nicht benutzerfreundlicher, als an mehreren Links, die was unterschiedliches machen? Mitunter sieht man, dass die Datei mit einem falschen, üblicherweise nicht verwendeten oder einem für Binärdaten bestimmten Content-Type ausgeliefert wird. Meist veranlasst dies den Browser, die Datei zum Speichern anzubieten. Dafür gibt es jedoch keine Garantie, dass das bei jedem auch so funktioniert.

    Lo!

    1. Hi!

      Erstes Problem: Der Benutzer soll eine Liste aller 300 Geschichten angezeigt bekommen und hinter jedem Eintrag ein Link auf das PDF-File.
      Wenn er aber nun auf den Link klickt, wird ihm die Datei angezeigt statt downgeloadet. Ich habe nun schon unzählige Foreneinträge durchstöbert und jedesmal hieß es, man solle eine ZIP-Datei draus machen, was mich zum zweiten Problem bringt.

      Was genau passiert, liegt an den jeweiligen Einstellungen im Browser des Anwenders. Allerdings sollte bei jedem gleich sein, dass man mit Rechtsklick und "Speichern unter" (oder ähnlicher Beschriftung) die Datei bei sich ablegen kann. Wenn deine Anwender ihren Browser nicht bedienen können, kannst du sie darauf hinweisen, dass sie es so tun sollen.

      Hatte ich bereits gewußt und genau darin liegt mein Problem, aber wie du selbst sagtest, werde ich mal versuchen mit meinem Provider zu sprechen.

      Zweites Problem: Wenn ich die ZIP-Klasse verwenden möchte, kommt der Fehler, daß diese nicht existiert - sie MUSS in der php.ini eingebunden werden (installiert), aber ich bin nicht der Provider, sodaß ich eben auch nicht auf diese Zugriff habe.

      Pech gehabt. Aber du kannst ja mal den Provider fragen, ob er es einbindet.

      Gibt es einen PHP-Befehl, mit dem ich diese in meinem Script aktivieren oder eine andere Möglichkeit ZIPs zu erstellen ODER gibt es die Möglichkeit einen Download-Link zu erstellen. Es sollte eben benutzerfreundlich sein, was rechtsklick->speichern unter nicht unbedingt ist.

      Es gibt keine Do-what-I-mean-Funktion, so dass der Anweder mit einem einzigen Klick stets das jeweils Gewünschte erreichen kann. Was ist an zwei Mausklicks statt einem nicht benutzerfreundlicher, als an mehreren Links, die was unterschiedliches machen? Mitunter sieht man, dass die Datei mit einem falschen, üblicherweise nicht verwendeten oder einem für Binärdaten bestimmten Content-Type ausgeliefert wird. Meist veranlasst dies den Browser, die Datei zum Speichern anzubieten. Dafür gibt es jedoch keine Garantie, dass das bei jedem auch so funktioniert.

      Was ist an zwei Mausklicks benutzerunfreundlicher als an einem:
      1. Man bräuchte nur einen + Entertaste (Dialogbestätigen) ^^ = Zeitersparnis
      2. Man muss das "speichern unter" nicht im Drop-Down suchen.
      3. Wenn man mit der Maus beim Klicken verrutscht (bei 300 Stories leicht möglich - Ermüdungserscheinungen) kommt was falsches dabei raus
      4. Intuitiver, wenn der Button schon mal DOWNLOAD heißt

      Ich glaub, mir fallen da noch zig andere Gründe ein. Als nächstes hatte ich aber auch vor die Dateien in ein Zip zu packen, wozu dann auch wieder ZIP erforderlich wäre. Ich werde also nicht drum rum kommen, meinen Provider zu fragen. Danke trotzdem.

      Lo!

      1. Hallo,

        Was genau passiert, liegt an den jeweiligen Einstellungen im Browser des Anwenders.
        Hatte ich bereits gewußt und genau darin liegt mein Problem, aber wie du selbst sagtest, werde ich mal versuchen mit meinem Provider zu sprechen.

        worüber genau? Um die geeigneten HTTP-Header zu senden, wie wurzelbert vorschlug, brauchst du das nicht, wenn sowieso schon PHP im Spiel ist. Auch wenn der eine oder andere Browser sich dann über die mit diesen Headern gegebene Empfehlung hinwegsetzt ...

        Als nächstes hatte ich aber auch vor die Dateien in ein Zip zu packen, wozu dann auch wieder ZIP erforderlich wäre.

        Vor allem gehst du damit wieder einen erheblichen Schritt weg von der Benutzerfreundlichkeit: Der braucht nämlich nicht nur ein Programm, um zip-Archive wieder zu entpacken (das dürfte auf den meisten Rechnern vorhanden sein), sondern er hat mit dem Entpacken auch noch einen zusätzlichen, eigentlich überfüssigen Arbeitsschritt zu tun. Und zwar einen, der erheblich aufwendiger ist, als schnell mal rechtsklicken und einen Befehl aus dem Kontextmenü wählen: zip-Archiv irgendwo temporär speichern, Dateimanager aufrufen, ins Download- oder Temp-Verzeichnis wechseln, das zip-Archiv entpacken, extrahiertes PDF öffnen.

        Ciao,
         Martin

        --
        Wer es in einem Unternehmen zu etwas bringen will, muss so tun, als hätte er es schon zu etwas gebracht.
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        1. Moin!

          zip-Archiv irgendwo temporär speichern, Dateimanager aufrufen, ins Download- oder Temp-Verzeichnis wechseln, das zip-Archiv entpacken, extrahiertes PDF öffnen.

          Fuer gewoehnlich geht bei allen von mir verwendeten Browser ein Downloadmanager oder aehnliches auf, aus dem man das Downloadverzeichnis (die Datei sowieso) oeffnen kann. Die Datei ist dann meist auch vorausgewaehlt. Bei mir sieht das also so aus: Datei dorthin speichern wo man sie haben will, Verzeichnis aufrufen, Datei nutzen.

          --
          Vergesst Chuck Norris.
          Sponge Bob kann unter Wasser grillen!
          1. Hallo,

            zip-Archiv irgendwo temporär speichern, Dateimanager aufrufen, ins Download- oder Temp-Verzeichnis wechseln, das zip-Archiv entpacken, extrahiertes PDF öffnen.
            Fuer gewoehnlich geht bei allen von mir verwendeten Browser ein Downloadmanager oder aehnliches auf, aus dem man das Downloadverzeichnis (die Datei sowieso) oeffnen kann. Die Datei ist dann meist auch vorausgewaehlt. Bei mir sieht das also so aus: Datei dorthin speichern wo man sie haben will, Verzeichnis aufrufen, Datei nutzen.

            ja, wenn man solche Hilfen günstig konfiguriert.
            Das ändert aber nichts daran, dass ich mindestens einen Schritt mehr habe: Ich lade erst ein zip-Archiv herunter, das im Download-Verzeichnis landet. Dieses Archiv öffne ich nun, und ziehe dann erst die PDF-Datei raus, die ich eigentlich schon im ersten Schritt hätte haben können.

            Ciao,
             Martin

            --
            Butterkeksverteiler zu werden ist vermutlich eine der wenigen beruflichen Perspektiven, die sich noch bieten, wenn man einen an der Waffel hat.
              (wahsaga)
            Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
  3. Hallo Karl-Heinz,

    ich betreue ein kleines Geschichtenarchiv und mir wurde die Frage gestellt, ob man nicht auch alle Geschichten auf einmal als PDF downloaden kann.

    PDF habe ich bereits eingebaut. Mir wird jetzt PRO Geschichte ein PDF-File erstellt (bzw. nur bei Änderungen auf einer Geschichte neugeneriert).

    bei genau gleichen Ereignissen erzeuge eine einzige PDF-Datei der gesammelten Geschichten, am besten mit einem funktionsfähigen Inhaltsverzeichnis. Das fände ich benutzerfreundlicher als viele Einzeldateien.

    Freundliche Grüße

    Vinzenz