FileResponse soubor neexistuje

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

Zdravím,
snažím se udělat akci, která stáhne soubor. Soubor na zadané adrese opravdu existuje, ale tracy mi hází File ‚/math/www/files/soubor.pdf‘ doesn't exist. Kde by mohl být zakopaný pes?

public function actionStahnout($id) {

        $pathToFile = $this->basePath.'/files/soubor.pdf';
        $this->sendResponse(new  Nette\Application\Responses\FileResponse($pathToFile));
}

Editoval thermaltaker (8. 11. 2014 22:52)

castamir
Člen | 629
+
0
-

$this->basePath obsahuje jen relativní adresu na webu, zatímco ty potřebuješ celou cestu k souboru tak, jak je uložen na disku.

Editoval castamir (8. 11. 2014 23:08)

thermaltaker
Člen | 10
+
0
-

Ale já chci stahovat soubor z webu, konkrétně z „/math/www/files/soubor.pdf“, což je úspěšně uloženo v proměnné $pathToFile

castamir
Člen | 629
+
0
-

nebude jednodušší použít v šabloně něco na způsob

<a href="{$basePath.'/files/soubor.pdf'}">odkaz</a>
petr.jirous
Člen | 128
+
0
-

zkus:

$pathToFile = $this->context->expand("%wwwDir%/files/soubor.pdf");
thermaltaker
Člen | 10
+
0
-

Chci skrýt přímý odkaz na soubor, proto to dělám takhle.
Petře, děkuji, konkrétně %wwwDir% pomohlo.

Editoval thermaltaker (9. 11. 2014 11:17)