Ankündigung

Einklappen
Keine Ankündigung bisher.

Download eines Bilder über Button erzwingen

Einklappen

Neue Werbung 2019

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

  • Download eines Bilder über Button erzwingen

    Hallo zusammen,

    ich verzweifele gerade an einem Problem das vermutlich schon einige lösen konnten. Onkel Google hat mir einige Lösungsansätze zeigen können, leider war keiner davon erfolgreich.
    Es geht darum, dass ich mit imageCopy() und imagePNG() ein Bild per PHP erstelle/zusammenfüge. Dieses Bild möchte ich nun zum Download über ein Download Button anbieten. Leider öffnet er das Bild nur anstatt es zu speichern.

    Jetzt habe ich versucht mit dem Download-Attribut
    PHP-Code:
    <a href=URL class="button" download="LOYEES-Karte">DOWNLOAD KARTE</a
    einen Download zu erzwingen. Das funktioniert nur unter Mozilla aber nicht im Internet Explorer und auch nicht im Safari-Browser. Selbst auf Handys mit Chromebrowsern funktioniert es nicht und es wird noch nichtmals das Bild angezeigt sondern nur ein schwarzer Bildschirm.

    Die nächste Idee war deshalb den Header zu verändern der PHP-Datei die die Bilder generiert.
    PHP-Code:
    Header set Content-Disposition "attachment"
    Header set Content-Type "application/octet-stream" 
    Danach habe ich folgendes in einer neuen PHP-Datei probiert:
    PHP-Code:
    <?php
    header
    ('Content-Type: image/png');
    header('Content-Disposition: attachment; filename="downloaded.png"');
    include 
    'url.php';
    ?>
    Meine letzte Hoffnung war es eine .htaccess zu erstellen in einem Downloadordner in dem mein Script zur Bilderstellung ist.
    Ich habe folgendes mit und ohne php probiert:

    PHP-Code:
    <FilesMatch "\.(?i:jpg|gif|png|php)$">
      
    Header set Content-Disposition attachment
    </FilesMatch
    Der veränderte Header führt dazu, dass das Bild nicht korrekt dargestellt wird wenn php nicht in der .htaccess steht oder dazu das nur die php-Datei und nicht das Bild heruntergeladen wird.


    Ich selber hätte noch eine Idee für eine Lösung die ich aber durch meine begrenzte Javascript-Kenntnisse nicht umsetzen kann.
    Das durch PHP-generierte Bild wird als image mit der id="BildGeneriert" in meine HTML-Seite eingebunden. Mit Javascript müsste es doch möglich sein per onclick auf den Downloadbutton eine Downloadroutine für Bilder mit der id="BildGeneriert" zu starten.
    Hat sowas vielleicht schonmal jemand von euch probiert?

    Ich würde mich freuen wenn mir jemand meine Fehler erklären könnte bzw. würde ich mich noch mehr freuen wenn jemand eine passende Lösung für mein Problem hat.

    Vielen Dank schonmal für das Lesen des langen Textes

  • #2
    PHP-Code:
    header('Content-Type: image/png'); 
    Ich meine der contentype im header() darf nicht "Bild" sein, siehe zB: http://stackoverflow.com/a/3476444

    Weitere https://www.google.at/#safe=off&q=ph...force+download
    The string "()()" is not palindrom but the String "())(" is.

    Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
    PHP.de Wissenssammlung | Kein Support per PN

    Kommentar


    • #3
      Zitat von hausl Beitrag anzeigen
      Ich meine der contentype im header() darf nicht "Bild" sein,
      Warum willst du den Content-Type verheimlichen?

      Funktionert bei mir einwandfrei:
      PHP-Code:
      header('Content-Type: image/png');
      header('Content-Disposition: attachment; filename=test.png');
      readfile('test.png'); 

      Kommentar


      • #4
        Zitat von hellbringer Beitrag anzeigen

        Warum willst du den Content-Type verheimlichen?

        Funktionert bei mir einwandfrei:
        PHP-Code:
        header('Content-Type: image/png');
        header('Content-Disposition: attachment; filename=test.png');
        readfile('test.png'); 
        Hallo und vielen Dank schonmal für die Unterstützung. Die Lösung funktioniert jetzt für Androidgeräte aber noch nicht für das Iphone. Beim Iphone wird das Bild nicht gespeichert sondern als Vollbild angezeigt.

        Kommentar


        • #5
          In Bezug auf #3 und #4:
          Ich erinnerte mich dunkel daran da mal etwas gelesen zu haben das der Browser es ja im Grunde selbst entscheiden kann was er damit macht. Und wenn man ihm sagt "speichere dieses binäre etwas einfach" dann kann nicht viel anders passieren. Natürlich macht es grundsätzlich aber schon auch Sinn "mit" dem Browser zu arbeiten und nicht dagegen.
          The string "()()" is not palindrom but the String "())(" is.

          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
          PHP.de Wissenssammlung | Kein Support per PN

          Kommentar


          • #6
            Zitat von biggeseebi Beitrag anzeigen
            Hallo und vielen Dank schonmal für die Unterstützung. Die Lösung funktioniert jetzt für Androidgeräte aber noch nicht für das Iphone. Beim Iphone wird das Bild nicht gespeichert sondern als Vollbild angezeigt.
            Am iPhone kann man auch nichts runterladen. Wohin auch? Man hat ja keinen Zugriff aufs Dateisystem.

            Wenn der User das Bild speichern will, dann kann erst doch eh speichern. Wo ist das Problem?

            Kommentar

            Lädt...
            X