首页 > 解决方案 > 将 csv 数据传输到后端的最有效方法

问题描述

我想看看我是否可以从社区获得一些关于上传 CSV 文件的意见。这些文件很大,占用数 GB。由于服务器限制,我无法使用块上传。

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

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

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

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 数据都放在了局部变量中。有什么方法可以让我将其发送到后端而无需用户等待数小时?我已经查看了队列,这是一个选项,还是只有在数据得到支持后才会做任何事情?

真的,任何信息都值得赞赏。我的想法可能有点偏离,我只是想提出将大量数据发送到后端的最有效方法。

谢谢

标签: phpcsvparsinglaravel-5

解决方案


推荐阅读