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

时间:2019-02-13 20:03:23

标签: laravel storage phpspreadsheet

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

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

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

1 个答案:

答案 0 :(得分:1)

我自己弄清楚了。由于没有$ writer-> getContent()方法,这是我的解决方法:

  • 保存到 php:// output
  • 使用 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);