Esempio n. 1
0
 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;
 }
Esempio n. 3
0
 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;
 }
Esempio n. 4
0
 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;
 }
Esempio n. 6
0
 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;
 }