将CSV数据获取到后端的最有效方法

时间:2019-01-26 20:57:29

标签: php csv parsing laravel-5

我想看看是否可以从社区中获得一些有关CSV文件上传的信息。这些文件很大,谈论多个GB。由于服务器的限制,我无法使用块上传。

所以可以说我有一个非常标准的文件输入

<input type="file" class="form-control-file" name="fileToUpload">

在更改或提交时,我可以通过路由将其传递到我的后端。 Controller函数可能看起来像这样

public function uploadFilePost(Request $request){
    $request->validate([
        'fileToUpload' => 'required|file',
    ]);

    $request->fileToUpload->store('csvFiles');

    return back()
        ->with('success','You have successfully uploaded the file.');
}

这里最大的问题是,对于多个GB的文件,此过程需要几个小时,这是一个问题,因为您需要在此请求发生时保持浏览器保持打开状态。

所以我的第一个问题就是这个。我可以使用PapaParse之类的文件在客户端上解析文件。这实际上需要花费几秒钟来解析。现在将文件解析为JSON字符串或数组,这会以任何方式减小文件的大小吗?

我的第二个问题是解析对大小没有任何作用,但是我现在将所有这些csv数据保存在局部变量中。我有什么办法可以将其发送到后端,而无需用户等待几个小时?我已经看过队列了,这是一个选择,还是只有在数据备份后才做任何事情?

真的,感谢您提供任何信息。我的想法可能还很遥远,我只是想提出一种最有效的方法,将大量数据发送到后端。

谢谢

0 个答案:

没有答案