[PHP] Bilderanzeige unter Webroot

Hegelbock

Ensign
Registriert
Nov. 2001
Beiträge
245
Hallo Leute,

wie der Titel schon zeigt, habe ich das Problem Bilder anzuzeigen, die unter dem Webroot liegen. Ist das irgendwie über Javascript möglich.

Der Grund das Sie unter dem Webroot liegen ist, damit nicht jeder darauf zugreifen kann. Somit kann ich die einzelnen Ordner passwortschützen.

Also, ich hoffe es kann mir jemand weiterhelfen.


Gruss
Hegelbock
 
Sorry - aber ich raffs net :(
 
Hegelbock schrieb:
wie der Titel schon zeigt, habe ich das Problem Bilder anzuzeigen, die unter dem Webroot liegen. Ist das irgendwie über Javascript möglich.

du meinst sicherlich 'ueber', nicht 'unter' (beachte die hirarchische struktur: von oben nach unten). und javascript ist immernoch clientseitig - damit kommst du nicht weiter. aber es gibt eine funktion namens readfile().

http://php.net/readfile
 
Hmm... damit kann ich es ja aber nur direkt ausgeben. Was ist wenn ich das Bild kleiner haben will, und zudem noch mehrere nebeneinander? (Miniaturansicht)
 
Zuletzt bearbeitet:
Grafik-Funktionen

http://php.net/image

wenn du mehrere haben willst, machst du das einfach mehrmals.
 
Hmm... ich glaub du verstehst mein Problem nicht ganz. Ich bekomm die Datei schon kleiner, aber das Problem diesbezüglich ist noch die Bilder nebeneinander zu bekommen. Wie die Miniaturansicht in Windows. Wie bekomme ich den HTML Code vermischt mit den Bildern ?
Ich sehe im moment nur die MÖglichkeit, ein Bild direkt in den Ausgabepuffer zu laden, und dadurch wird dies ja direkt ausgegeben.

Könntest du mir das nochmals ein bischen genauer erklären?
 
da man auf die bilder ja nicht zugreifen kann, muss man sie vom server ausgeben lassen. aber da es keinen pfad gibt, der von aussen zugaenglich waere, musst du die datei quasi umleiten, zB indem du als source fuer dein bild eine php-datei angibst, mit entsprechendem bildnamen als parameter. liegen die bilder alle in einem verzeichnis?

Code:
/
/files
 /bilder
/html
 bild_ausgeben.php

dann koenntest du zB mit

Code:
<img src="bild_ausgeben.php?bildname=test.png" width="200" height="100" alt="ein testbild" />

das bild einbinden. die bild_ausgeben.php liest dann die datei ueber das server-dateisystem aus und sendes es anschliessend an den client.

PHP:
<?php
readfile('../files/bilder/'.$_GET['bildname']);
?>

da solltest du jetzt noch einen header mitgeben, der dem browser sagt, dass es ein PNG ist und vorzugsweise eine whitelist erstellen, die alle erlaubten namen enthaelt, damit sich niemand bild_ausgeben.php?bildname=../../html/geheime_datei.php zuschicken lassen kann. reicht ja auch, wenn du die dateiendung auf JPG/GIF/PNG pruefst, zB mit substr().
 
ok, so wäre das eine Idee. ABer ich gebe den Dateinamen nicht als Request Parameter mit, sondern schreib dies in ne Session.

Aber ok, ich versuche es so mal.
Vielen Dank.
 
Zurück
Oben