我想在导出csv / xls之前计算文件大小(Laravel,Maatwebsite)

时间:2018-12-24 10:40:08

标签: php laravel maatwebsite-excel

在下面的代码中,Excel :: create函数正在创建一个新的csc / xls文件,而-> download函数正在下载该文件, 我想要一些可以计算文件大小的函数。

我进行了很多搜索,但找不到任何解决方案。

$data = Item::get()->toArray();

return Excel::create('itsolutionstuff_example', function($excel) use ($data) {
    $excel->sheet('mySheet', function($sheet) use ($data)
    {
        $sheet->fromArray($data);
    });
})->download('csv');

2 个答案:

答案 0 :(得分:0)

您可以尝试将文件存储在本地,并从路径提供文件。

在刀片中,您可以检查存储文件的文件大小:

{{ File::size(public_path('path_of_file')) }}

答案 1 :(得分:0)

不幸的是,Laravel excel甚至在创建文件之前都没有提供任何API来获取文件大小。

有一种解决方法,您可以在运行时创建文件,并可以使用file_metadata获取文件的大小

 $data = Item::get()->toArray();

 Excel::create('itsolutionstuff_example', function($excel) use ($data) {
    $excel->sheet('mySheet', function($sheet) use ($data){
        $sheet->fromArray($data);
    });
 })->store('filename');

 File::size('filename'); // get file size 

希望这会有所帮助。