Как я могу загрузить файл из представления в Laravel?

Я пытаюсь захватить файл CSV в моем Request в моем контроллере. Я читал документация при использовании файловой системы в Laravel, но, похоже, возвращает NULL,

Внутри моего контроллера:

public function index(Request $request)
{
$file = $request->file('dataframe'); # This returns null every time
if(isset($file)):

$dataset = new CsvDataset($file, 1);
$vectorizer = new TokenCountVectorizer(new WordTokenizer());
$tfIdfTransformer = new TfIdfTransformer();

$samples = [];
foreach ($dataset->getSamples() as $sample)
$samples[] = $sample[0];

$vectorizer->fit($samples);
$vectorizer->transform($samples);

$tfIdfTransformer->fit($samples);
$tfIdfTransformer->transform($samples);

$dataset = new ArrayDataset($samples, $dataset->getTargets());
$randomSplit = new StratifiedRandomSplit($dataset, 0.1);

$classifier = new SVC(Kernel::RBF, 10000);
$classifier->train($randomSplit->getTrainSamples(), $randomSplit->getTrainLabels());

$predictedLabels = $classifier->predict($randomSplit->getTestSamples());

$viewVar = (object) [
'labels' => $predictedLabels,
'score'  => Accuracy::score($randomSplit->getTestLabels(), $predictedLabels)
];

return view('home')->with('prediction', $viewVar);

endif;

return view('home');
}

Внутри мой взгляд:

<p>You can upload your dataframe below.</p>
<form method='GET'>
<input type='file' name='dataframe'>
<button type='submit' name='upload'>Predict</button>
</form>
@if (isset($prediction))
<p> Score: {{ $prediction->score }} </p>
@endif

Когда я var_dump() запрос, я вижу languages.csv файл, который я загружаю. Как я могу получить доступ к этому файлу в $request переменная?

0

Решение

Если вы хотите отправить документ, вы должны использовать POST и enctype:

<form method='POST' enctype="multipart/form-data">
<input type='file' name='dataframe'>
<button type='submit' name='upload'>Predict</button>
</form>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]