*.image zum download anbieten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • *.image zum download anbieten

    Hallo,

    ich arbeite gerade an einer Seite mit php 5.
    Diese Seite enthält eine Bildergalerie.
    In dieser Bildergalerie möchte ich nun die Bilder welche man anschauen kann entweder einzeln oder aber zusammengefasst zum download anbieten.

    Nun das Entscheidende, gibt es mit PHP eine Möglichkeit den Browser zu suggerieren das ihm *.jpg unbekannt sind, oder aber eine Möglichkeit die *.jpg in ein Archiv zu laden um sie dann an den Browser auszugeben?

    *nicht gleich hauen das ich die Suchfunktion nicht genutzt habe. Aber wenn ich nicht weiß wonach ich suche, klappt es auch mit der Suche nicht. ;)
  • Super dankeschön, das klappt super. So simpel und nahe liegend die Lösung. Da hätte ich wirklich selbst drauf kommen müssen.

    Nun fehlt mir nur noch eine Variante wie ich mehrere Bilder zusammengefasst zum Download anbiete. Ich bin da derweilen auf Bzip2 gestoßen. Währe das der richtige Ansatz für mein vorhaben?

    Nun noch eine nicht ganz überlebenswichtige Frage. :)
    Ich werde hoffentlich jetzt nicht übermütig. PHP bietet ja die Möglichkeit des auslesen der EXIF daten. Nun gehen sie mir aber leider verloren, wenn ich die eben beschriebene Variante

    PHP-Quellcode

    1. <?php
    2. header('Content-disposition: attachment; filename=dateiname.jpg');
    3. #...
    4. ?>

    ein Bild zum download anbiete. Nun währe es aber schön, wenn die EXIF daten erhalten bleiben, so dass der Autor sowie mögliche Kommentare im Bild bleiben.
  • Du kannst mit PHP auch ZIP Dateien erstellen: http://php.net/manual/de/book.zip.php
    Ich denke das ist immer noch das verbreiteste Format.

    Zu dem EXIF Problem. Der Header manipuliert die Datei nicht. EXIF Dateien gehen bestimmt nicht dabei verloren.
    Wenn sie wirklich verloren gehen, dann bei deinem Upload der Bilder. Resized du die Bilder vielleicht?
  • Ich würde dir auch eher zu Zip raten.

    Ich hab des auch mal gemacht, wenn du Interesse hast , hier der Schnipsel :

    Quellcode

    1. $remoteOutputFileName = "archive".time().".zip";
    2. $archive = new ZipArchive();
    3. $archive->open($remoteOutputFileName, ZIPARCHIVE::CREATE);
    4. foreach($photoArray as $photo) {
    5. $handle = fopen($photo['name'].".jpg", "rb");
    6. $contents = stream_get_contents($handle);
    7. fclose($handle);
    8. $archive->addFromString($photo['name'].".jpg",$contents);
    9. }
    10. $archive->close();
    11. header('Content-type: application/zip');
    12. header('Content-Disposition: attachment; filename="'.$remoteOutputFileName.'"');
    13. readfile($remoteOutputFileName);
    14. exit();
    Alles anzeigen
  • ihr seid dufte

    Vielen dank für eure Hilfe.
    Ich resize die Bilder wirklich. Zwar überschreib ich die Originalgröße beim DL mit der Originalgröße aber da wird das Problem sicher stecken. Aber das bekomm ich schnell behoben.
    Und vielen dank für den Tip mit .zip
    *lol das war nen Reim

    Ich werd mich dann gleich mal an die Lektüre machen. Danach werd ich das auch sicher gebacken bekommen.
    Mein Fragen wären damit alle beantwortet. Danke an die Helfer.