jak zakázat přímý přístup k souborům(obrázkům)?
- vk83
- Člen | 22
Ahoj,
předem se omlouvám, protože nevím jestli se tento dotaz týká přímo
nette, ale možná tak nějak php nebo nějakého jiného nastavení webu.
Jde mi o toto:
Na webu mám nějaké obrázky, které se budou zobrazovat pouze registrovaným
a přihlášeným uživatelům. Nemám problém s tím takovou stránku si
vytvořit.
Ale rád bych se zeptal, zda je možné, když uživatel přímo do
prohlížeče zadá nějakou url adresu toho obrázku (např:
http://mujweb.cz/obrazky/obrazek1.jpg
), tak aby mu nezobrazil.
Je možné to nějak udělat?
Díky
Editoval vk83 (7. 9. 2012 18:35)
- vk83
- Člen | 22
Díky, dnes jsem to zkusil, ale mám problém na začátku už i s vytvářením toho obrázku.
Ve firefoxu mi to vypíše: Obrázek
„http://localhost/pokus/web/www/fotky/fotkaId=1“ nelze zobrazit, protože
obsahuje chyby.
A když se podívám přes firebug, do zdrojového kódu, tak tam je v body
pouze:
<img src=„http://localhost/pokus/web/www/fotky/fotkaId=1“
alt=„…“ />
Nebude problem v tom, že je v tom „src“ taková url? Ona je to URL adresa stránky, na které jsem a na které se má ten obrázek zobrazit.
Ale přitom $image = \Nette\Image::fromFile($file);
ve $file je url přímo k JPG souboru.
Věděl by někdo, v čem může být ještě problem? Díky.
- Tomáš Jablonický
- Člen | 115
Budeš si muset napsat script, který obrázky bude ze složky načítat. Bacha! Takovej script nebude nikdy rychlejší než samotné načítání obrázku klasickým způsobem – to se dá částečně ošetřit cachem ale i tak to bude znatelně pomalejší.
- thunderbuff
- Člen | 164
Pokud odkazuješ přímo na obrázek, browser pošle http požadavek a server mu ho vrátí. Pokud obrázek posíláš skriptem, potřebuješ na to další php proces. A v případě, že máš hosting omezující počet php procesů (třeba wedos Nolimit omezuje na 5), tak se ti snadno stane, že přo načítání více obrázků spotřebuješ volné procesy a ostatní návštěvníci čekají.
Editoval thunderbuff (4. 10. 2012 9:43)