Jak zobrazit pdf soubor v prohlížeči?

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

Dobrý den,

rád bych v prohlížeči zobrazil pdf soubor uložený na serveru.
Tady na foru jsem vyčetl, že se to dá udělat pomocí FileResponse() a našel jsem něco takového:

public function actionInvoice()
    {

	header('Content-Type: application/pdf');
	header('Content-Disposition: attachment;filename="membership.pdf"');
	header('Cache-Control: max-age=0');

	$this->sendResponse(new Responses\FileResponse(cesta/soubor.pdf', 'soubor.pdf'));
    }

Prohlížeč však zahlásí: soubor nenalezen.

Děkuji za pomoc.

castamir
Člen | 629
+
0
-

Soubor nenalezen znamená, že máš blbě cestu k souboru =)

Jinak stažení souboru pak děláš správně přes FileResponse, ale rozhodně není potřeba nijak upravovat hlavišku header. Stačí prostě:

public function actionInvoice()
{
    $this->sendResponse(new Responses\FileResponse(/uplna/cesta/k/souboru.pdf', 'soubor.pdf'));
}

Edit: ještě mě napadá, že ta chyba se ti může zobrazit i jinde (fakt nevím, co máš konkrétně za chybu, tak jen hádám): pokud máš v root složce v souboru .htaccess následující řádek:

RewriteRule !\.(pdf|js|ico|gif|jpg|png|css|rar|zip|tar\.gz)$ index.php [L]

tak smaž to pdf|

Editoval castamir (10. 11. 2014 10:18)

petr.jirous
Člen | 128
+
0
-

Relapse napsal(a):

Dobrý den,

rád bych v prohlížeči zobrazil pdf soubor uložený na serveru.
Tady na foru jsem vyčetl, že se to dá udělat pomocí FileResponse() a našel jsem něco takového:

public function actionInvoice()
    {

	header('Content-Type: application/pdf');
	header('Content-Disposition: attachment;filename="membership.pdf"');
	header('Cache-Control: max-age=0');

	$this->sendResponse(new Responses\FileResponse(cesta/soubor.pdf', 'soubor.pdf'));
    }

Prohlížeč však zahlásí: soubor nenalezen.

Děkuji za pomoc.

chybí ti tam uvozovka: cesta/soubor.pdf‘,

Editoval petr.jirous (10. 11. 2014 13:16)