PhpSpreadsheet: как сохранить электронную таблицу с диском хранения Laravel? - PullRequest
0 голосов
/ 13 февраля 2019

Я создал действительную электронную таблицу и могу сохранить ее с помощью документированного метода сохранения:

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

Но как я могу использовать диски хранилищ, предоставленные Laravel?Можно ли получить содержимое файла перед записью на диск?

1 Ответ

0 голосов
/ 13 февраля 2019

Я разобрался сам.Так как нет метода $ 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); 
...