public function downloadErrorsAction() { $date = $this->params('date'); $path = sprintf('data/logs/php_log.%s.xml', $date); $response = new Stream(); $response->setStream(fopen($path, 'r')); $response->setCleanup(false); $response->setStatusCode(200); $headers = $response->getHeaders(); $headers->addHeaderLine(sprintf('Content-Disposition: attachment; filename="log-%s.csv"', $date)); $headers->addHeaderLine('Content-Type: text/csv'); return $response; }
/** * @return Stream * mapAction fornisce uno stream dell'immagine * creata dal PngRender e cambia ogni volta che * la mappa si aggiorna. */ public function mapAction() { $session = $this->getSession(); /** @var Wator $wator */ $wator = $session->wator; $wator->updateWorld(); $render = new PngRenderX4($wator); $filePng = $render->getPngFile($wator); $response = new Stream(); $response->getHeaders()->addHeaders(array('Content-type' => 'image/jpg')); $response->setStream(fopen('/tmp/map.png', 'r')); return $response; }
public function tfaRenderQrCodeAction() { $filePath = tempnam('data/tmp/', '2fa-qr-'); $renderer = new \BaconQrCode\Renderer\Image\Png(); $renderer->setForegroundColor(new \BaconQrCode\Renderer\Color\Rgb(170, 45, 76)); $renderer->setHeight(256); $renderer->setWidth(256); $writer = new \BaconQrCode\Writer($renderer); $writer->writeFile('123456', $filePath); $response = new Stream(); $response->setCleanup(true); $response->setStream(fopen($filePath, 'rb')); $response->setStreamName($filePath); $headers = $response->getHeaders(); $headers->addHeaderLine('Content-Length', filesize($filePath)); $headers->addHeaderLine('Content-Type', 'image/png'); return $response; }
public function renderQrCodeAction() { /** @var AccountInterface $account */ $account = $this->zourceAccount(); $oneTimePassword = new TOTP($account->getContact()->getFullName(), $this->tfaService->getSecret()); $oneTimePassword->setIssuer('Zource'); $oneTimePassword->setIssuerIncludedAsParameter(true); $oneTimePassword->setParameter('image', $this->url()->fromRoute('settings/security/tfa-image', [], ['force_canonical' => true])); $filePath = tempnam('data/tmp/', '2fa-qr-'); $renderer = new Png(); $renderer->setHeight(256); $renderer->setWidth(256); $writer = new Writer($renderer); $writer->writeFile($oneTimePassword->getProvisioningUri(true), $filePath); $response = new Stream(); $response->setCleanup(true); $response->setStream(fopen($filePath, 'rb')); $response->setStreamName($filePath); $headers = $response->getHeaders(); $headers->addHeaderLine('Content-Length', filesize($filePath)); $headers->addHeaderLine('Content-Type', 'image/png'); return $response; }
/** * Fetch a generated package. * * @param string $fileId * @param string $format * @param \Zend\Http\Response $response * @return \Zend\Http\Response */ private function fetch($fileId, $format, $response) { if (!$fileId || !$format) { $response->setStatusCode(404); return $response; } $package = $this->getPackageFile($fileId, $format); if (!file_exists($package)) { $response->setStatusCode(404); return $response; } $stream = fopen($package, 'r'); if (false === $stream) { $response->setStatusCode(500); return $response; } // Mark the package for deletion when the request spins down. $this->sentPackage = $package; // Create a streamable response. $response = new Stream(); $response->setStream($stream); $response->getHeaders()->addHeaderLine('Content-Type', 'application/octet-stream')->addHeaderLine('Content-Disposition', sprintf('attachment; filename="apigility_%s.%s"', date('Y-m-d_H-i-s'), $format))->addHeaderLine('Content-Length', filesize($package)); return $response; }
public function pdfAction() { $invoice = $this->invoiceRepository->find($this->params('invoiceId')); if ($invoice === null) { $this->getResponse()->setStatusCode(404); return; } $pdfPath = $this->invoiceService->generatePdf($invoice); $response = new StreamResponse(); $response->setStream(fopen($pdfPath, 'r')); $response->getHeaders()->addHeaders(['Content-Disposition' => 'attachment; filename="invoice.pdf"', 'Content-Type' => 'application/pdf', 'Content-Length' => filesize($pdfPath)]); return $response; }