Я начинающий разработчик, изучающий php. Задача, которую мне нужно сделать, это загрузить 6-гигабайтный CSV-файл, содержащий данные, в базу данных. Мне нужно получить доступ к данным, т.е. прочитать файл через файл controller.php, а затем разделить этот огромный CSV-файл в 10 000 строк вывода CSV-файлов и запись данных в эти выходные CSV-файлы. Я выполняю эту задачу уже неделю и еще не разобрался. Не могли бы вы, ребята, помочь мне в решении этой проблемы.
<?php
namespace App\Http\Controllers;
use Illuminate\Queue\SerializesModels;
use App\User;
use DateTime;
use Illuminate\Http\Request;
use Storage;
use Validator;
use GuzzleHttp\Client;
use GuzzleHttp\RequestOptions;
use Queue;
use App\model;
class Name extends Controller
{
public function Post(Request $request)
{
if($request->hasfile('upload')){
ini_set('auto_detect_line_endings', TRUE);
$main_input = $request->file('upload');
$main_output = 'output';
$filesize = 10000;
$input = fopen($main_input,'r');
$rowcount = 0;
$filecount = 1;
$output = '';
// echo "here1";
while(!feof($input)){
if(($rowcount % $filesize) == 0){
if($rowcount>0) {
fclose($output);
}
$output = fopen(storage_path(). "/tmp/".$main_output.$filecount++ . '.csv','w');
}
$data = fgetcsv($input);
print_r($data);
if($data) {
fputcsv($output, $data);
}
$rowcount++;
}
fclose($output);
}
}
}