Verfasst: 27.09.2006 17:57
Ersetze "die view.php" durch "ein view.php", ein beliebiger anderer Name tut es auch, d.h. die Datei muß angelegt werden. Hauptsache am Ende wird sie da wo das Bild erscheinen soll verlinkt.
Ich wollte den Code gerade testen. Und werde den Beitrag hier dann gegebenenfalls editieren.
EDIT: Das was erst die Rettung war (der Verzeichniswechsel) war jetzt der Fehler. Also:
Eine Datei, z.B. mit dem Namen view.php, und mit folgendem Inhalt kommt in das Verzeichnis in dem die Verzeichnisse mit den Bildern drin liegen. Der Speicherort ist zwingend dieses Verzeichnis.Es muß nichts angepaßt werden.
Da wo das Bild angezeigt werden soll kommtrein. Der Pfad und eventuell der Name (view.php) muß angepaßt werden. Jetzt stimmt auch der Name beim Speichern.
PS: Den mimetype (frage mich jetzt nicht was das ist -> google.de) jpg und bmp gibt es nicht. Für jpg muß jpeg gesetzt werden (das macht der code oben) aber für bmp habe ich bei selfhtml keinen mimetype gefunden.
Laut wikipedia sollte das mit bmp aber mit den meisten Programmen so, wie es der code jetzt macht, funktionieren.
http://de.wikipedia.org/wiki/Grafikformat
War's das?
PPS: Was man vielleicht noch erwähnen sollte, die Variante zeigt auch Bilder an, die in einem Verzeichnis liegen, das mit einer .htaccess "geschützt" ist (solange die view.php nicht schon gesperrt ist, dann geht gar nix).
Ich wollte den Code gerade testen. Und werde den Beitrag hier dann gegebenenfalls editieren.
EDIT: Das was erst die Rettung war (der Verzeichniswechsel) war jetzt der Fehler. Also:
Eine Datei, z.B. mit dem Namen view.php, und mit folgendem Inhalt kommt in das Verzeichnis in dem die Verzeichnisse mit den Bildern drin liegen. Der Speicherort ist zwingend dieses Verzeichnis.
Code: Alles auswählen
<?php
//Welche Bildendungen sollen erkannt werden?
$endungen = array("gif","jpg","jpeg","png","bmp");
/****** Bilder auslesen ******/
$bilder = array();
chdir (".");
$verz = opendir(".");
while($uverz = readdir($verz))
{
if($uverz != "." && $uverz != ".." && is_dir($uverz))
{
$averz = opendir($uverz);
while($datei = readdir($averz))
{
if($datei != "." && $datei != "..")
{
$datei_endung = substr( strrchr($datei,".") ,1);
//Ist die Datei-Endung in dem Array vorhanden?
if(in_array($datei_endung,$endungen))
{
$datei = $uverz."/".$datei;
$bilder[] = $datei;
}
}
}
closedir($averz);
}}
closedir($verz);
//Zufälliges Bild wählen
srand ((double) microtime() * 10000000);
$key = array_rand($bilder);
//Bild ausgeben:
$endung = substr( strrchr($bilder[$key],".") ,1);
if ($endung == "jpg"){$endung = "jpeg";}
$name = substr( strrchr($bilder[$key],"/") ,1);
header("Content-Type: image/$endung");
header("Content-Disposition: attachment; filename=$name");
readfile ($bilder[$key]);
?>
Da wo das Bild angezeigt werden soll kommt
Code: Alles auswählen
<img src="http://www.bilderdomain.de/verzeichnis/view.php" alt="">
PS: Den mimetype (frage mich jetzt nicht was das ist -> google.de) jpg und bmp gibt es nicht. Für jpg muß jpeg gesetzt werden (das macht der code oben) aber für bmp habe ich bei selfhtml keinen mimetype gefunden.
Laut wikipedia sollte das mit bmp aber mit den meisten Programmen so, wie es der code jetzt macht, funktionieren.
http://de.wikipedia.org/wiki/Grafikformat
War's das?
PPS: Was man vielleicht noch erwähnen sollte, die Variante zeigt auch Bilder an, die in einem Verzeichnis liegen, das mit einer .htaccess "geschützt" ist (solange die view.php nicht schon gesperrt ist, dann geht gar nix).