PhpSpreadsheet:如何使用Laravel存储磁盘保存电子表格?

问题描述 投票:0回答:1

我已经生成了一个有效的电子表格,我可以使用记录的保存方法保存它:

$writer = new Xlsx($spreadsheet);
$writer->save('file.xlsx');

但是如何使用Laravel提供的存储磁盘?在将文件写入磁盘之前,我可以获取该文件的内容吗?

laravel storage phpspreadsheet
1个回答
1
投票

我自己想通了。由于这里没有$ writer-> getContent()方法,因此我的解决方法是:

  • 保存到php://输出
  • 使用ob_start / ob_get_contents捕获文件内容。
  • 最后在任何磁盘上调用常规的Storage put()方法!

这是我的代码:

    $writer = new Xlsx($spreadsheet);

    ob_start();
    $writer->save('php://output');
    $content = ob_get_contents();
    ob_end_clean();

    Storage::disk('local')->put("myfile.xlsx", $content); 
    Storage::disk('myftp')->put("myfile.xlsx", $content); 
© www.soinside.com 2019 - 2024. All rights reserved.