Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Grafiken von außerhalb des htdocs-Verzeichnisses anzeigen
Frage
Hallo Gemeinde,
ich möchte in einem PHP-Script Grafiken anzeigen lassen, welche sich aber außerhalb des Zugriffs des Apache befinden. Bisher habe ich nur die Möglichkeit gefunden, diese Dateien zum Download anzubieten, indem ich einen neuen Header baue und das File übergebe. Das sieht in Kurzform so aus:
[code]
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=\"$save_as_name\"");
readfile($filename);
[/code]
Das ist ja schonmal eine feine Sache, ich möchte die Datei aber in der Seite anzeigen! Gibt es eine Möglichkeit, das hinzubekommen?
MfG
Yves
Antwort 1 von Risatara2
Ich glaube, dass der zweite Header das bringt, oder dass du den ersten header verändern müsstest. Probier mal ein bisschen damit rum.
Antwort 2 von StarWarsFan
Prost Gemeinde! :-)
Ich habs herausgefunden. Wie man so schön sagt, mal wieder den Wald vor lauter Bäumen nicht gesehen...
Ist ja ganz easy!
Man lege eine Datei "show.php" an, welche man dann in der html-Seite als Image-Link aufruft. Diese Datei bekommt als Parameter in geeigneter Form den Namen der Bilddatei oder wie auch immer man das löst. Also zum Bleistift so:
Innerhalb der Show-Datei sind zwei Zeilen ganz entscheidend:
Wichtig ist noch, das KEINE weiteren Ausgaben erfolgen, da sonst die gesendeten Daten nicht mehr als Grafik interpretiert werden können.
So, ich hoffe, ich hab auf die Schnelle alles richtig geschrieben... :-)
MfG
Yves
Ich habs herausgefunden. Wie man so schön sagt, mal wieder den Wald vor lauter Bäumen nicht gesehen...
Ist ja ganz easy!
Man lege eine Datei "show.php" an, welche man dann in der html-Seite als Image-Link aufruft. Diese Datei bekommt als Parameter in geeigneter Form den Namen der Bilddatei oder wie auch immer man das löst. Also zum Bleistift so:
...
// als Link
<a href="show.php?filename="<name>" target="_blank">
// oder direkt
<img src="show.php?filename=<name>">
Innerhalb der Show-Datei sind zwei Zeilen ganz entscheidend:
...
// Header für Image erzeugen
header("Content-Type: image/tiff");
// Datei ausgeben.
readfile($filename);
Wichtig ist noch, das KEINE weiteren Ausgaben erfolgen, da sonst die gesendeten Daten nicht mehr als Grafik interpretiert werden können.
So, ich hoffe, ich hab auf die Schnelle alles richtig geschrieben... :-)
MfG
Yves

