我想看看是否可以从社区中获得一些有关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数据保存在局部变量中。我有什么办法可以将其发送到后端,而无需用户等待几个小时?我已经看过队列了,这是一个选择,还是只有在数据备份后才做任何事情?
真的,感谢您提供任何信息。我的想法可能还很遥远,我只是想提出一种最有效的方法,将大量数据发送到后端。
谢谢