/** * 获取Filesystem * @return Filesystem */ public static function getFileSystem() { if (is_null(static::$driver)) { static::$driver = \Storage::drive('local'); } return static::$driver; }
public function postPdfInvoice() { $data = \Request::get("jsonData"); $data = utf8_encode($data); $facturas = json_decode($data, true); //$view = $this->viewInvoice($facturas[0]); //return $view; /*Generamos ZIP*/ $uid = uniqid(); $zip = new \Chumper\Zipper\Zipper(); $zip->make(storage_path() . "/app/tmp/{$uid}/facturas.zip"); $tmpDir = "/tmp/{$uid}"; $this->tmpDir = storage_path('app') . $tmpDir; /*Insertamos cada factura en el zip*/ foreach ($facturas as $factura) { $view = $this->viewInvoice($factura); $view = str_replace("localhost:8080", "localhost", $view); $pdfContents = \PDF::loadHTML($view)->setPaper('a4')->setOption('margin-right', 0)->setOption('margin-bottom', 0)->setOption('margin-left', 0)->setOption('margin-top', 0)->output(); $nombreFact = "factura-{$factura['id']['serfac']}-{$factura['id']['ejefac']}-{$factura['id']['numfac']}.pdf"; $zip->addString($nombreFact, $pdfContents); $uidPdf = uniqid(); \File::put($this->tmpDir . "/{$uidPdf}.pdf", $pdfContents); $this->invoicesToWebRefresh[$uidPdf] = $factura; } /*$return = $this->refreshWeb(); if($return != "ok") { die($return); }*/ /*Cerramos ZIP, eliminamos temportal y descargamos*/ $zip->close(); $response = \Response::make(file_get_contents(storage_path() . "/app/tmp/{$uid}/facturas.zip")); \Storage::drive("local")->deleteDirectory("tmp/{$uid}"); $response->header('Content-Disposition', 'attachment; filename="facturas.zip"'); $response->header('Content-Length', strlen($response->getOriginalContent())); \File::deleteDirectory(storage_path("app") . "/tmp/{$uid}"); return $response; }
public function postExportPdf(Request $request) { $ids = null; if ($request->exists("checkall")) { $filter = !is_null($request->input('search')) ? $this->buildSearch() : ''; $args["params"] = $filter; $rows = $this->model->getRows($args); foreach ($rows["rows"] as $row) { $ids[] = $row->id; } } if (!$ids) { $ids = $request->input('ids'); } if (count($ids) > 0) { $uid = uniqid(); $zip = new \Chumper\Zipper\Zipper(); $zip->make(storage_path() . "/app/tmp/{$uid}/facturas.zip"); foreach ($ids as $id) { $view = $this->getHtmlContent($id); $nombreFact = "factura-{$this->data['row']->serfac}-{$this->data['row']->ejefac}-{$this->data['row']->numfac}.pdf"; $pdfContents = \PDF::loadHTML($view)->setPaper('a4')->setOption('margin-right', 0)->setOption('margin-bottom', 0)->setOption('margin-left', 0)->setOption('margin-top', 0)->output(); $zip->addString($nombreFact, $pdfContents); $this->data['subgrid'] = isset($this->info['config']['subgrid']) ? $this->info['config']['subgrid'][0] : array(); } $zip->close(); $response = \Response::make(file_get_contents(storage_path() . "/app/tmp/{$uid}/facturas.zip")); $size = \Storage::drive("local")->size("tmp/{$uid}/facturas.zip"); \Storage::drive("local")->deleteDirectory("tmp/{$uid}"); $response->header('Content-Disposition', 'attachment; filename="facturas.zip"'); $response->header('Content-Length', '$size'); return $response; } }