Zobrazení náhledu a stažení PDF z BLOBU

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

Zdravím, chtěl bych se zeptat… uložil jsem si pdf do blobu (potřebuji to v blobu) do databaze mysql ale netuším jak jej zobrazit a stáhnout pomocí nette. zatím dokážu zobrazit pouze cestu k tomu. Chtěl bych 2 tlačítka 1 zobrazí náhled na pdf a 2 ho rovnou stáhne. Podle návodu na forech a dokumentaci se mi to moc nedaří. Za případnou odpověd děkuji.

Editoval Koupilsemto (27. 12. 2017 19:20)

Felix
Nette Core | 1247
+
+1
-

Je pravda, ze dokumentace na tema odesilani vlastni response je docela skoupa na slovo. Podle me potrebujes v presenteru vytvorit vlastni response a odeslat ji. Viz sekce o MVC a presenterech.

public function actionDownload()
{
    $this->sendResponse(new Nette\Application\Responses\FileResponse($filepath));
}

Jak je zrejme, objekt FileResponse potrebuje cestu k souboru, resp. realnou cestu. Takze pokud mas nejaka binarni data, tak ten soubor realne neexistuje. Muzes ho vytvorit a pak poslat uzivateli…

Nebo, si muzes poslat specialni CallbackResponse.

public function actionDownload()
{
    $this->sendResponse(new Nette\Application\Responses\CallbackResponse(function($request, $response) {
        // read file data
        // set code $response->setCode($code);
        // set headers $response->setHeader($key, $value);
    }));
}

Idealne, kdyz si pro svoje ucely napises nejakou FilePreviewResponse a FileDownloadResponse, kde posles data jaka potrebujes a nastavis hlavicky, jake potrebujes.

Snad to pomohlo. ;-)

Editoval Felix (27. 12. 2017 21:59)

Koupilsemto
Člen | 38
+
0
-

Díky podívám se nato a pokud se mi to povede můžu sem vložit ukázku.