Vložení záznamu o stáhnutí souboru do databáze

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

Zdravím,
mám takový dotaz a prosbu.

Situace: na serveru mám několik různých souborů (*.doc, *.xls, *.jpg, …), každý tento soubor má v databázi svůj záznam.
Přes DownloadPresenter.php bych chtěl stáhnout soubor třeba „prvni.doc“ s tím, že by se do tabulky přidala hodnota o jeho stáhnutí.

Hledal jsem to a nenašel… je možné, že ani pořádně nevím co hledat…
Děkuji za pomoc

David Zadražil
Člen | 62
+
0
-

Udělej si v tabulce se souborama sloupec „views“ s defaultní hodnotou „0“ a před tím, než se vyvolá stahování v prohlížeci udělej update databáze (přičti k hodnotě ve sloupci views daného souboru).

lukinpark
Člen | 9
+
0
-

David Zadražil napsal(a):

Udělej si v tabulce se souborama sloupec „views“ s defaultní hodnotou „0“ a před tím, než se vyvolá stahování v prohlížeci udělej update databáze (přičti k hodnotě ve sloupci views daného souboru).

jj, to ano, spíš nevím, jak vyvolat v DownloadPresenter.php v public function actionStahnout($id){…} stahování souboru /soubor/prvni.doc

Zápis do databáze, zjištění cesty k souboru, to všechno mám, jen nevím jak vyvolat stahování…

Ot@s
Backer | 476
+
0
-

lukinpark napsal(a):

David Zadražil napsal(a):

Udělej si v tabulce se souborama sloupec „views“ s defaultní hodnotou „0“ a před tím, než se vyvolá stahování v prohlížeci udělej update databáze (přičti k hodnotě ve sloupci views daného souboru).

jj, to ano, spíš nevím, jak vyvolat v DownloadPresenter.php v public function actionStahnout($id){…} stahování souboru /soubor/prvni.doc

Přes vlastní pravidlo routeru

$route = new Route('/soubor/<path .+>', array(
    'presenter' => 'DownloadPresenter',
    'action' => 'stahnout'
));

Příslušná akce v presenteru

public function actionStahnout(){
	// cesta v $this->getParameter('path');
}

Editoval Ot@s (4. 12. 2012 12:00)

jiri.pudil
Nette Blogger | 1032
+
0
-

Zápis do databáze, zjištění cesty k souboru, to všechno mám, jen nevím jak vyvolat stahování…

FileResponse:

public function actionStahnout()
{
	...
	$this->sendResponse(new FileResponse(...));
}

Editoval jiri.pudil (4. 12. 2012 12:29)