以块的形式从csv文件中获取数据并插入数据库

时间:2016-04-07 08:30:21

标签: php mysql laravel csv

我想在laravel中使用此库https://github.com/Maatwebsite/Laravel-Excel以块的形式读取csv文件中的数据。我的csv文件有我使用此代码的larage数据

 Excel::filter('chunk')->load('sample.csv')->chunk(50, function($results)
    {
        //insert record in databade in chunks
    },FALSE);

上面的代码以块的形式获取数据但是在一段时间之后花了很多时间给我错误Maximum execution time of 30 seconds exceeded。我知道如果我会增加max_excution_time那么这个错误不会来,但它仍然需要很多时间我不希望从max_excution_time文件增加php.ini我希望在一个块页面之后它应该清除缓存或页面应该刷新或其他任何更好的并且应该显示记录from-to的状态已导入

1 个答案:

答案 0 :(得分:0)

您可以通过在Laravel

中调用\Symfony\Component\HttpFoundation\StreamedResponse方法来使用response()->stream()

查看更多:

  1. Api:     https://laravel.com/api/5.2/Illuminate/Contracts/Routing/ResponseFactory.html#method_stream

  2. 教程:     https://medium.com/@barryvdh/streaming-large-csv-files-with-laravel-chunked-queries-4158e484a5a2#.dc49uu24l