使用laravel从提交的表单中获取CSV数据

时间:2014-12-09 07:50:43

标签: php laravel phpexcel octobercms laravel-excel

我目前正在使用Laravel和内置的AJAX框架在OctoberCMS中开发。

提交表单后,我试图以CSV格式捕获数据并最终将其加载到数据库中。我正在使用Laravel Excel v1.2.2并且我编写的代码只有在我引用URL时将CSV加载到服务器时才有效。我需要这个来代替加载从表单中捕获的CSV。这是我的代码:

Excel::load('my/url.xlsx' function($archive)
{
    $result = $archive->get();

    foreach($result as $key => $value)
    {
        echo $value-> //Echoing some values here
    }
})->get();

1 个答案:

答案 0 :(得分:1)

我遇到了尝试使用Laravel-Excel上传到API端点的相同问题。为了我的需要,我妥协并上传到临时目录并立即从那里读取。您的示例可能如下所示:

if (Input::hasFile('file_from_form')) {
    Input::file('file_from_form')->move('uploads/my', 'url.xls'); // Moves to /public/uploads/my/url.xls
}

Excel::load('uploads/my/url.xls' ,function($archive)
{
    $result = $archive->get();

    foreach($result as $key => $value)
    {
        echo $value-> //Echoing some values here
    }
})->get();

如果需要,您可以在完成后删除临时文件。我不会把这一切都放在一个地方,但这只是为了简单的演示。对我来说,我检查并捕获了来自控制器的输入,然后传递给处理程序类来读取和处理文件数据。

有关上传文件的不同方法,请参阅Laravel docs