如何在laravel中保存dompdf文件并动态命名

9q78igpj  于 2022-12-30  发布在  其他
关注(0)|答案(2)|浏览(155)

有没有人知道如何保存生成的pdf文件和命名它动态使用dompdf在laravel?我总是遇到这个错误

failed to open stream: No such file or directory

当试图生成pdf文件并将其保存到项目目录时。这里是我的控制器代码

$bills = Tagihan::join('pesanan', 'tagihan.id_pesanan', 'pesanan.id_pesanan')
                    ->join('kendaraan', 'pesanan.id_kendaraan', 'kendaraan.id_kendaraan')
                    ->join('kategori_mobil', 'kendaraan.id_kategori_kendaraan', 'kategori_mobil.id_kategori')
                    ->join('users', 'pesanan.id_pengguna', 'users.id')
                    ->where('pesanan.id_pesanan', $save->id_pesanan)
                    ->select('pesanan.*', 'users.*', 'tagihan.*', 'kendaraan.*', 'kategori_mobil.nama_kategori')
                    ->first();
    $today = Carbon::now('GMT+7')->toDateString();
      $pdf = new PDF();
      $pdf = PDF::loadView('admin.tagihan.pdf', compact('bills','today'));
      file_put_contents('public/bills/'.$noOrder.'.pdf', $pdf->output() );
    return redirect()->route('pesananIndex');

我想保存我的pdf文件与自定义字符串与$noOrder.'pdf',但当我使用静态名称像这样

file_put_contents('public/bills/bubla.pdf', $pdf->output());

我没有错,有什么办法吗?

aelbi1ox

aelbi1ox1#

您可以从http响应中获取OriginalContent到变量中,然后将其推送到您的文件中。

$pdf = PDF::loadView('admin.tagihan.pdf', compact('bills','today'));

 $content = $pdf->download()->getOriginalContent();
 Storage::put('public/bills/bubla.pdf',$content);

 ...
0lvr5msh

0lvr5msh2#

Storage::disk('local')->makeDirectory('/pdf/order');
      $pdf = PDF::loadView('PDF.Order.OrderPDF-dev', ['invoiceDetail'=>$invoiceDetail]);

      $path = 'storage/pdf/order/';
      $pdf->save($path  . $fileName);
      return url($path.$fileName);

在我的例子中,我首先创建PDF文件夹。**makeDirectory(...)**将创建文件夹,如果存在或不存在。

$path是我想把我的文件放在目录中的位置。不要在这里使用绝对路径或公共路径函数。只定义你想创建文件的位置。

我正在存储文件夹中创建文件。因此我添加了存储/.....

相关问题