Php 如何从Laravel中的视图上传文件?
我试图在控制器内的Php 如何从Laravel中的视图上传文件?,php,laravel,logistic-regression,Php,Laravel,Logistic Regression,我试图在控制器内的请求中捕获CSV文件。我一直在阅读关于在Laravel中使用文件系统的说明,但它似乎返回NULL 在我的控制器内: public function index(Request $request) { $file = $request->file('dataframe'); # This returns null every time if(isset($file)): $dataset = new CsvD
请求中捕获CSV文件。我一直在阅读关于在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
您可以在下面上传数据帧
预测
@if(isset($预测))
分数:{{$prediction->Score}
@恩迪夫
当我var\u dump()
请求时,我可以看到我上传的languages.csv
文件。如何在$request
变量中访问此文件?如果要提交文档,必须使用POST和enctype:
<form method='POST' enctype="multipart/form-data">
<input type='file' name='dataframe'>
<button type='submit' name='upload'>Predict</button>
</form>
预测
如果要提交文档,必须使用POST和enctype:
<form method='POST' enctype="multipart/form-data">
<input type='file' name='dataframe'>
<button type='submit' name='upload'>Predict</button>
</form>
预测
您的表单缺失enctype=“多部分/表单数据”
您的表单缺失enctype=“多部分/表单数据”
啊,我明白了。所以,我无法使用GET提交此文件?我必须使用POST?因为GET会将表单数据附加到当前URL,所以不会。它只包含文件名,而不包含文件内容。GET data限制在2048个字符左右,因此您可能无法将文件放入其中。@Jaquarh我认为这可能对您的疑问非常有帮助:在将其更新到POST(包括enctype
)后,这就起作用了。谢谢你的回答,我会接受的。啊,我明白了。所以,我无法使用GET提交此文件?我必须使用POST?因为GET会将表单数据附加到当前URL,所以不会。它只包含文件名,而不包含文件内容。GET data限制在2048个字符左右,因此您可能无法将文件放入其中。@Jaquarh我认为这可能对您的疑问非常有帮助:在将其更新到POST(包括enctype
)后,这就起作用了。谢谢你的回答,我会接受的。