Я хочу загрузить CSV-файл в свою базу данных через форму laravel. Я могу вставить файл, только если он хранится в общей папке. Как правильно установить путь с помощью функции fopen?
При отправке формы мой код использует только тот CSV, который уже существует в общей папке, а не тот CSV, который я пытаюсь загрузить. Кроме csv я также передаю некоторые другие данные своему контроллеру. Как я могу изменить код для получения файла формы, а не файла, хранящегося в общей папке?
1) Ниже приведен отрывок из моей формы. В нижней строке я пытаюсь загрузить файл.
<body>
<form method='post' enctype="multipart/form-data" action="/hard">
{{csrf_field()}}
<section>
<br>
<legend><i><b> Complete Data Below</b></i></legend>
<br>
</section>
<section>
Choose program:
<select name="sc" id="xaos">
<optgroup label="postgraduates">
@foreach($transport as $y)
<option value="{{$y->object_id}}">{{$y->object_name}}</option>
@endforeach
</optgroup>
</select>
</section>
<br>
<section>
ID number:
<input name='am' type='number' min="1000000" max="1999999" required="" oninvalid="this.setCustomValidity('1000000 < Value < 1999999')">
</section>
<br>
<section>
Select Language:
<select name="language" id="lang">
<option value="GR"> Greek</option>
<option value="EN"> English</option>
</select>
</section>
<br>
<section>
<label for="upload-file">select csv file</label>
<input type="file" name="upload-file">
</div>
<input type='submit' name='upload' value="Submit!">
</section>
</form>
<br>
<br>
</body>
2) А ниже приведен фрагмент кода моего контроллера, который обрабатывает импортированный файл.
public function job(Request $p)
{
$a1 = $p -> get('sc');
$a2 = $p -> get('am');
$a3 = $p -> get('language');
$f_rownum = 0;
if (($handle = fopen ( 'MOCK_DATA.csv', 'r' )) !== FALSE)
{
while ( ($data = fgetcsv ( $handle, 1000, ';' )) !== FALSE )
{
$ac1=$data[0];
$ac2=iconv("Windows-1253", "UTF-8", $data[1]);
$ac3=iconv("Windows-1253", "UTF-8", $data[2]);
$ac4=iconv("Windows-1253", "UTF-8", $data[3]);
$ac5=$data[4];
...............