Alain: browser erkennt im bild nur eine php datei

Hallo,
ich habe da eine frage bezüglich bild als php datei und verlinkung zu bildern.
Wenn ich mir eine gallerie ansehe und auf ein verlinktes bild klicke,
dieses dann abspeichern möchte,dann erscheint immer big.php als bilddatei.
Ich muss dann der datei immer einen neuen namen 1,2,3,4... geben und
mit dem total-commander umbenennen sowie die datei endung dess bildes speichert mozilla 1.6
als .jpe anstatt jpg ab.
Gibts da eine möglichkeit,damit der browser,das bild auch als namen
erkennt anstatt immer nur big.php?
Ich denke der author von der seite,wo ich übrigens member bin und bezahlt habe,dachte sich
er wäre ganz klug,wenn er es den benutzern so umständlich wie möglich macht,damit die
nur seine bilder angucken können,dabei schadet er sich nur selbst mit dieser komplizierter und
unfreundlicher benutzer führung in seinem member-bereich,meiner meinung nach.
Gruss
Alain

  1. Bonjour,

    wie sieht denn das Script zur Erzeugung der Bildressource aus?

    Die Ausgabe an den Browser darf nichts anderes enthalten, als die Header zum Content-Type und ggf. Header zu Cache und Lebensdauer. Danach kommen zwei Zeilenumbrüche und dann der bytestream für die Grafik.

    Um die Leerzeile kümmmert sich PHP, nur die Header musst Du ihm schon mitteilen.

    In Kurzform steht da:

    <?php

    header (make_content_type($bildtyp));
      header ("Last-Modified: $last_modified");
      echo $picdata;

    ?>

    make_content_type() ist eine eigene Funktion, die den Bildtyp ermittelt
    --> getimagesize()
    $last_modified enthält den Timestamp des Bildes
    --> $last_modified = @gmdate('D, d M Y H:i:s',@filemtime(PICPATH.$filename)).' GMT';

    $_SERVER['HTTP_IF_MODIFIED_SINCE'])
    Wenn der Client eine Cache-Information mitgesandt hat, muss man die Bilddaten nicht mehr senden, sondern nur noch ein Header-Paar

    header("HTTP/1.0 304 Not Modified");
          header("Cache-Control: max-age=86400, must-revalidate");

    $picdata ist der Inhalt der Bilddatei, der gesendet wird, wenn der Browser das Bild gerne hätte...

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    1. Hello,

      $_SERVER['HTTP_IF_MODIFIED_SINCE'])

      Da fehlte ein Satzteil:

      Wenn der Client eine Cache-Information mitgesandt hat, muss man die Bilddaten nicht mehr senden, wenn sie nicht neuer sind, sondern nur noch ein Header-Paar

      header("HTTP/1.0 304 Not Modified");
            header("Cache-Control: max-age=86400, must-revalidate");

      Liebe Grüße aus http://www.braunschweig.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
  2. hi,

    Gibts da eine möglichkeit,damit der browser,das bild auch als namen
    erkennt anstatt immer nur big.php?

    ja, man könnte im download-script noch
    header( "Content-Disposition: attachment; filename="$filename"");
    einfügen, um den client anzuweisen, den in $filename angebenen namen zum abspeichern zu verwenden.
    klappt aber AFAIK nicht mit allen browsern ...

    Ich denke der author von der seite,wo ich übrigens member bin und bezahlt habe,dachte sich
    er wäre ganz klug,wenn er es den benutzern so umständlich wie möglich macht,damit die
    nur seine bilder angucken können,dabei schadet er sich nur selbst mit dieser komplizierter und
    unfreundlicher benutzer führung in seinem member-bereich,meiner meinung nach.

    unfug.
    um die verwaltung für ihn selbst komfortabel und einfach zu halten, ist es m.E. quasi unumgänglich, den bilddownload per script zu machen.

    er wird halt keine bessere möglichkeit gefunden haben - kannst ihm obiges ja mal vorschlagen.

    gruss,
    wahsaga

    --
    http://wazgnuks.net/ - back from the dead
    1. hi,

      Gibts da eine möglichkeit,damit der browser,das bild auch als namen
      erkennt anstatt immer nur big.php?

      ja, man könnte im download-script noch
      header( "Content-Disposition: attachment; filename="$filename"");
      einfügen, um den client anzuweisen, den in $filename angebenen namen zum abspeichern zu verwenden.
      klappt aber AFAIK nicht mit allen browsern ...

      wie ist das nun zu verstehen?Meinst Du nun änderungen am browser selbst oder auf dem server,
      auf den ich keinen Einfluss habe?
      Wenn Du den browser (mozilla 1.6) meinst,wo sollten diese einstellungen sein?
      Gruss vom
      Alain

      1. hi,

        wie ist das nun zu verstehen?Meinst Du nun änderungen am browser selbst oder auf dem server,
        auf den ich keinen Einfluss habe?

        wir bewegen uns doch immer noch im themenbereich PHP, oder?
        das sollte die frage, ob sich das im client einstellen lässt, doch schon beantworten.

        gruss,
        wahsaga

        --
        http://wazgnuks.net/ - back from the dead