Automatické stažení souboru
- pitr82
- Člen | 121
Díky,
funguje mi stažení souboru : viz:
<?php
public function actionDefault($filename)
{
$this->sendResponse(new Responses\FileResponse($this->context->parameters['wwwDir'].'/files/help.pdf', 'Nápověda.pdf', 'application/octet-stream'));
}
?>
Jde udělat, aby se soubor místo stažení zobrazil přímo v prohlížeči ?
- pitr82
- Člen | 121
Oli napsal(a):
Na to nepotřebuješ nic sofistikovaného. Podle mě by se mělo zobrazit pokud ho normálně odkážeš třeba v šabloně. takže něco jako
<a n:href="{$basePath}/files/help.pdf">Pomoc</a>
by mělo ten soubor rovnou zobrazit v prohlížeči.
To jsem netestoval…
Ale já nechci zobrazovat žádnou šablonu, jen po zadání odkazu:
mojeaplikace.cz/help místo stáhnutí, zobrazil pdf soubor.
Díval jsem se do metody FileRespose
a asi budu muset nastavit jinak hlavičky [Headers]
- jiri.pudil
- Nette Blogger | 1034
V hlavičce Content-Disposition
musíš místo
attachment
poslat inline
. Asi by nebylo špatné,
kdyby to ve FileResponse bylo konfigurovatelné. Když už v tom budeš,
můžeš poslat PR?
- pitr82
- Člen | 121
jiri.pudil napsal(a):
V hlavičce
Content-Disposition
musíš místoattachment
poslatinline
. Asi by nebylo špatné, kdyby to ve FileResponse bylo konfigurovatelné. Když už v tom budeš, můžeš poslat PR?
jj, to je přesně ono, kdyby to bylo jako property bylo by to super.
Edit:
Kdybych chtěl větší soubory nechat stahovat omezenou rychlostí, kde
by na to bylo nejvhodnější místo?
Rozšířit resp. upravit metodu send třídy FileResonse ?
Nemáte to někdo už vyřešeno ?
Editoval pitr82 (27. 5. 2014 14:02)
- jiri.pudil
- Nette Blogger | 1034
Kdybych chtěl větší soubory nechat stahovat omezenou rychlostí, kde by na to bylo nejvhodnější místo?
Úplně nejvhodnější místo by imo bylo v konfiguraci webserveru.
- pitr82
- Člen | 121
jiri.pudil napsal(a):
Kdybych chtěl větší soubory nechat stahovat omezenou rychlostí, kde by na to bylo nejvhodnější místo?
Úplně nejvhodnější místo by imo bylo v konfiguraci webserveru.
Díky, to je jedná z možností, kdybych to dělal pro všechny
stejně.
A kdybych to chtěl mít řízené aplikací ? Různým uživatelům různé
rychlosti ?