Relativní cesta z absolutní

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
na1k
Člen | 288
+
0
-

Zdravím, mám zřejmě velice amatérský dotaz, ale jde mi o best practice.

Píšu si skriptík na úpravu obrázků (Nette\Image) a výsledné obrázky ukládám to tempu, tedy

<?php
Environment::getVariable('tempDir')
?>

ten ale vypadá nějak takto C:\Web\ws2/app/temp a výsledný soubor má pak adresu například C:\Web\ws2/app/temp/miniatura.jpg

Jak můžu z takové adresy efektivně udělat adresu, kterou použiju na stránce? Hledal jsem někde konstantu document_root nebo něco podobného, ale marně. Například u mě, je root v C:\Web\ws2, což znamená, že tuto část bych potřeboval z adresy odříznout, ale nenapadá mě žádné čisté řešení.

Jod
Člen | 701
+
0
-

WWW_DIR v index.php.

Všablone je to $baseUri.

Môžeš použiť aj https://api.nette.org/…iScript.html
Environment::getHttpRequest()->getUri()->basePath,baseUri etc.

Editoval Jod (18. 7. 2009 19:45)

Honza Marek
Člen | 1664
+
0
-

V šabloně {$baseUri} a jinde Environment::getVariable("baseUri").

Ondřej Mirtes
Člen | 1536
+
0
-

Každopádně ten obrázek bys neměl linkovat přímo z app/temp/, tam by měl mít totiž Apache zakázaný přístup (přes .htaccess a tím, že všechny požadavky na web jsou směřovány do document_root/index.php, takže Apache nadřazenou složku ani „nevidí“).

Obrázek ukládej do WWW_DIR.'/img/' či něco podobného.

na1k
Člen | 288
+
0
-

Jod: O téhle třídě jsem neměl ani potuchy. Díky, za ni ;)

LastHunter: To je velice dobrá připomínka, nějak mi to nedošlo. Nakonec používám cestu relativní k doc_rootu a kde je potřeba cestu předat funkci php, tam pouze přidám WWW_DIR a jeví se to jako celkem dobré řešení :)

Honza Kuchař
Člen | 1662
+
0
-

Obrázek můžeš taky klientovi odeslat jednoduše pomocí FileDownloaderu (Nette extras) (soubor potom může být fyzicky klidně i v tempech).