stahování soborů do modelu

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

Ahojte, mám takový technický dotaz. Zde na nette foru jsem si našel jak se dají stahovat soubory.

public function actionDownload($id) {
    $file_info = $this->meeting_facade->getMeetingFile($id);
    $cesta = static::DOWN_SYS_DIR . static::DOWN_APP_DIR . '/' . $file_info->meeting->id . '/' . $file_info->name;
    $httpResponse = $this->presenter->getHttpResponse();
    $httpResponse->setHeader('Pragma', "public");
    $httpResponse->setHeader('Content-Transfer-Encoding', 'binary');
    $httpResponse->setHeader('Cache-Control', 'private');
    $httpResponse->setHeader('Expires', '0');
    $httpResponse->setHeader('Content-Length', $file_info->size);
    $this->sendResponse(new FileResponse($cesta, $file_info->name, 'application/octet-stream'));
}

Zde je můje stahovací metoda, která je v presenteru na událost action „download“.
Bohužel stahování souborů mám v projektu víc a vždycky se bude jednat o tu sammou metodu.
Jde to nějak dát do modelu?? Řešili jste někdo podobný problém?
Nebo doporučujete to udělat jinak??

Díky za případnou odpověď.

CZechBoY
Člen | 3608
+
+1
-

Co si udělat komponentu, který předáš cestu k souboru a ona odešle tu odpověď?
Neboli něco takovýho co máš teď v tý actionDownload dát do komponenty např. do metody attached($presenter).

btw. zdá se mi, že většina tvýho kodu je k ničemu… nastavuješ response a potom odešleš úplně jinou.

ondrusu
Člen | 118
+
0
-

nj to je pravda, díky za názor a za popostrčení. Zkusím to napsat jako komponentu.