volanie downloadu suboru v sablone

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

Čaute,

snažím sa urobiť kód, kde bude možný download súboru, ktorý je uložený v db. Našiel som niekoľko príkladov, ako na to. Urobil som v presenteri funkciu. V nej nastavujem hlavičku HTML a robím echo obsahu súboru. Neviem však, ako ten download zavolať z templatu. Keď to definujem ako link takto:

<a href="{link :downloadfile, $rec['fileID']}" target="_blank">{$rec['fileName']}</a>
tak sa mi to snaží vypísať jeho obsah na obrazovku.
Môžte poradiť, ako na to?
assassik
Člen | 43
+
0
-

asi by to chtělo ukázat tu metodu v presenteru

Charlie
Člen | 11
+
0
-
	public function actionDownloadfile()
	{
	  $data = array('fileID' => $this->getParam('fileID'));

  	  $fileData = DataModule::getFile($data);

			$httpResponse = Environment::getHttpResponse();

			$httpResponse->setContentType('application/octet-stream');
			$httpResponse->setContentType('application/force-download');
			$httpResponse->setContentType('application/download');
			$httpResponse->setHeader('Pragma', "public");
			$httpResponse->setHeader('Expires', 0);
			$httpResponse->setHeader('Cache-Control', "must-revalidate, post-check=0, pre-check=0");
			$httpResponse->setHeader('Content-Transfer-Encoding', "binary");
			$httpResponse->setHeader('Content-Description', "File Transfer");
			$httpResponse->setHeader('Content-Length', $fileData[0]['size']);
			$httpResponse->setHeader('Content-Disposition', 'attachment; filename="' . $fileData[0]['name'] . '"');

  			echo $fileData[0]['fileContent'];

}
bazo
Člen | 620
+
0
-

preco nepouzijes download response?

Aurielle
Člen | 1281
+
0
-

Nově je přejmenovaná na FileResponse, a v takovém případě je třeba si ji upravit tak, aby brala ne název souboru, ale obsah z db…

Charlie
Člen | 11
+
0
-

Tymto sposobom to teda nejde? Nasiel som to ako chodivu ukazku. Projekt mam postaveny na Nette 0.9.6. S DownloadResponse nemam ziadne skusenosti. O co by to bolo ine ako toto?

Aurielle
Člen | 1281
+
0
-

Zkusil bych toto.