如何使用chunk方法使用Laravel excel进行文件上传?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用chunk方法使用Laravel excel进行文件上传?相关的知识,希望对你有一定的参考价值。

public function uploadNotaCorte(Request $request, EstadoRepository $estadoRepository)
{
    $error      = array();
    $path       = $request->file('file')->getRealPath();
    $notasCorte = Excel::load($path, function($reader) {
    })->get();

    $chunk      = $notasCorte->chunk(100);

    foreach ($notasCorte as $key => $notaCorte) {
    //RULES
   }return  $error;
}

**大家好,我是编程的新手,我很难实现chunk方法,所以上面的dodigo通常适用于小文件加上较大的错误文件,因为它的大小。我需要上传一个包含120,000条记录的文件,我正在尝试使用这个块,我不知道我能做什么错了已经看过文档更多而且非常简单,我无法解决问题,任何人都可以帮助我吗? ?**

答案

假设您正在使用maatwebsite/excel包,此链接应该有所帮助:http://www.maatwebsite.nl/laravel-excel/docs/import#chunk

您需要将代码更改为以下内容:

public function uploadNotaCorte(Request $request, EstadoRepository $estadoRepository)
{
    $error = array();
    $path = $request->file('file')->getRealPath();

    Excel::filter('chunk')->load($path)->chunk(100, function($results)
    {
        foreach($results as $row)
        {
            // RULES
        }
    });

    return  $error;
}

这是没有经过测试的,我从来没有使用过这个包(虽然很好知道它存在)所以你的里程可能会有所不同。

以上是关于如何使用chunk方法使用Laravel excel进行文件上传?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 vuejs 和 laravel 使用块方法上传大文件?

使用 Eloquent 的 Laravel 块方法

laravel 使用with查询数据和 chunk分块的使用

在块函数 Laravel 上使用变量

JQuery UI Sortable + Laravel Collection Chunk:行可拖动而不是单个元素

stream_set chunk_size():块大小不能大于 laravel 24215454