Portál AbcLinuxu, 10. května 2025 07:53
V tomto výpisu jsou mimo jiné obsaženy cesty k souborům (třeba obrázkům), které se nacházejí na lokálních discích případných uživatelů ... Problém je, že tento soubor je na lokálním disku a já nevím, jak k němu ze strany serveru přistoupit
Ale k čemu to je? Nějak to nechápu, ale pokud soubor potřebuji, tak ho uživatel uploaduje a pak mě nezajímá, kde byl předtím, ale přeci nemůžu z HTML stránky zobrazené na webovém serveru přistupovat k lokálním souborům (pak bych mohl číst i třeba /etc/passwd
atp.).
Aha, pokud to teda chápu správně, tak všechno běží na jednom stroji (nebo v jedné laboratoři/síti). To ale nic nemění na tom, že server nemůže jen tak hrabat do souborů, protože obvykle běží pod uživatelem typu nobody
, který nemůže skoro nic. K souborům může přistupovat, jen pokud mají určitá práva (SELinux) nebo skupinu (obvykle www
), ale navíc (např. Apache) server nenechá zobrazovat jiné soubory než pod určitým adresářem (obvykle public_html
).
Ale abych napsal něco konstruktivního: ať uživatelé mají ty výkresy vždy v určitém adresáři (nebo ať je tam symlinkují) a nastaví mu práva na čtení buď pro všechny (pak asi půjde napsat do adresy /home/..../vykres
) nebo aspoň práva na čtení pro určitou skupinu, pod kterou běží server a ten je pak bude přeposílat, takže se bude muset adresa přepsat na něco jako localhost/uzivatel/vykresy/vykres
. Buď jak buď, je to docela ohavnost - jak z hlediska bezpečnosti, tak pohodlí pro uživatele (kteří budou muset ukládat výkresy do určitého adresáře).
příklad Lin: file:///home/pavel/soubor.html příklad Win: file://c:/adresar/soubor.html
Hmmm... teď jsem si doma dal do jednoho HTML souboru odkaz na lokální soubor (tedy s tou cestou, jak popisujete) a zobrazil si ho přes Apache. Ale pokud na odkaz kliknu, nic se nestane [což je IMHO jedině správně] (pokud ho vykopíruju do adresního řádku, je to okay) - ani ve Firefoxu, ani v Links. Takže zbývá jen řešení č. 2 (přeposílat přes server) nebo to úplně překopat.
- http://www.seznam.cz - http://muj.server/dokumenty/navod1.html - http://muj.server/dokumenty/navod2.php - file:///home/pavel/soubor.html - lokální soubor u mne v PCNo a při kliknutí na příslušný odkaz se otevře přísný odkaz (soubor) v prohlížeči. 1 odkaz otevře stránku z internetu, 2 a 3 odkaz otevře stránku z mého serveru a při kliknutí na 4 odkaz se otevře uživateli v jeho prohlížeči soubor lokálně z jeho houmu (samozř. tedy, pokud tam v této cestě tento soubor má). Doufám, že si rozumíme. Takto jsem to myslel a takto to i samozř. funguje.
Asi jsme si nerozuměli - předpokládal jsem, že stránka bude vygenerována na serveru a rovnou zobrazena - potom k lokálním souborům (ani v rámci prohlížeče) přistupovat nemůže. Pokud ji ale uživatel otevře z lokálního umístění, pak to samozřejmě fungovat bude.
file://
zobrazuji lokální soubory i v prohlížeči IE6 na Widlích (nemám s tím problém, resp. jsem kvůli tomu neřešil vůbec nic, prostě to takto funguje). Na webové stránce na místním intarnetu (apache na Lin) mám i odkaz, na který se po kliknutí zobrazí lokální soubor (jeden návod) umístěný na všech PC na c:/cesta/......
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.