Bild includieren und Dateinamen setzen

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

  • Bild includieren und Dateinamen setzen

    Hallo,

    man kann ja in einer PHP-Datei ein Bild laden und dieses ausgeben:

    PHP-Code:
    <?php
    header
    ("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Cache-Control: public");
    header("Content-Description: Load Image");
    header("Content-Type: $ctype");
    header("Content-Disposition: attachment; filename=\"$filename\";");
    header("Content-Transfer-Encoding: binary");
    header("Content-Length: $size");
    @
    readfile($file);
    exit;
    ?>
    $ctype gibt den Typen des Bildes aus, der durch die Endung ermittelt wird.

    Hierbei startet leider der Download.
    Möchte ich das Bild aber anzeigen lassen, dass muss ich Content-Disposition ausklammern!

    Wenn ich nun rechtsklick auf das Bild mache und Speichern unter wähle, dann bietet er mir als Downloadname immer bild.php.jpg an.

    Gibt es hierfür eine Möglichkeit den original-Bildnamen anzeigen zu lassen, ohne dass das Bild als Downloadaufforderung übermittelt wird?

    Also Bild wird geladen und dann macht man rechtsklick drauf und hat als Downloadnamen z.B: IMG0472.JPG anstatt bild.php.jpg


    gruß
    Piremilok

  • #2
    Re: Bild includieren und Dateinamen setzen

    Du kannst Content-Disposition:inline verwenden, aber das ändert nichts am Dateinamen. Dieser wird nur vorgeschlagen, wenn man das Bild "alleine" aufruft und dann "Seite speichern unter" verwendet - dann wird der Dateiname angezeigt - bei Rechtsklick und "Ziel speichern unter", wird Content-Disposition schlichtweg ignoriert ... das war zumindest der Schluss zu dem ich gekommen bin.

    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
    Wie man Fragen richtig stellt

    Kommentar


    • #3
      so wie ichs in erinnerung habe wird beim rechtsklick immer die absolute url genommen.
      alternative wäre mod_rewrite...

      Kommentar


      • #4
        Hallo

        @ghostgambler:
        Du hast teilweise recht!
        a) ich muss inline verwenden
        b) es wird nicht ignoriert

        Das "Ziel speichern" bezieht sich ja auf das Bild.
        Es wird lediglich das Bild ausgegeben, nicht irgend ein HTML-Code der das Bild anzeigt.

        Wenn ich den Code auf Content-Disposition: inline; ... abändere, dann wird der Dateiname als Downloadname des Bildes angenommen.

        Super! Vielen Dank!


        @Xaos: Auch eine Möglichkeit. Aber ich habe das Problem, dass die Bilder von 5 verschiedenen Personen kommen, insgesamt über 1GB Daten zusammen kommen und ich das Ganze daher auf FreeWebspace hoste.
        Der FreeWebspace erlaubt aber keinen direkten Zugriff auf die Bilder, sondern man muss von einer Seite des Accounts kommen.
        Dabei wird aber nur die Endung überprüft und nicht die Daten, die geschickt werden
        Und mode_rewrite kann ich da leider nicht benutzen...

        Trotzdem vielen Dank

        Kommentar

        Lädt...
        X