Я хотел посмотреть, смогу ли я получить от сообщества информацию о загрузке файла CSV. Эти файлы огромны, говорят несколько ГБ. Из-за ограничений сервера я не могу использовать загрузку чанков.
Допустим, у меня очень стандартный ввод файла
<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.');
}
Большая проблема заключается в том, что для файлов размером несколько ГБ этот процесс занимает несколько часов, и это проблема, поскольку вам нужно держать браузер открытым, пока этот запрос выполняется.
Так что на самом деле мой первый вопрос такой. Я могу проанализировать файл на клиенте, используя что-то вроде PapaParse . Это буквально занимает несколько секунд, чтобы разобрать. Теперь, когда файл проанализирован в строку или массив JSON, это каким-либо образом уменьшит размер файла?
Мой второй вопрос заключается в том, что синтаксический анализ не влияет на размер, но теперь у меня есть все эти данные CSV в локальной переменной. Могу ли я отправить это на сервер без необходимости ждать пользователя часами? Я посмотрел на очереди, это будет вариант, или это будет делать только когда данные на резервной копии?
Действительно, любая информация приветствуется. Может быть, я в замешательстве, я просто пытаюсь найти наиболее эффективный способ отправки большого объема данных на мой сервер.
Спасибо