Logování odeslaných souborů
- kral133
- Člen | 3
Ahoj,
odesílám větší soubory tímto způsobem:
public function actionDownloadUpdate()
{
try {
$path = $this->updateModel->getUpdatePath($this->requestParams['zip']);
} catch (\Exception $ex) {
$this->setError($ex);
}
$this->sendResponse(new \Nette\Application\Responses\FileResponse($path));
}
dalo by se nějakým způsobem zalogovat kdy bylo odesílání soubor
ukončeno (uživatel si ho dostahoval)?
Dalo by se to nějak dělat na úrovni nette/php nebo by to to muselo řešit
nějak na úrovni apache?
předem díky moc za nápady :)
- Milo
- Nette Core | 1283
To jsem nikdy neřešil a popravdě nevím, jak to udělat spolehlivě. Bude
v tom IMHO magie s ignore_user_abort()
,
connection_status()
a OB keší, ale jak se to chová pod Apache,
CGI nebo FastCGI SAPI přesně nevím. Co jsem zkoušel, ani funkce
registrovaná přes register_shutdown_function()
se vždy
nezavolá.
Jestli už máš v aplikaci databázi, možná ukládat PID procesu při začátku stahování a na konci ho mazat. A PID v tabulce, které už neběží, budou rozbitá stahování.