繁体   English   中英

如何从Laravel中的视图上传文件?

[英]How can I get a file uploaded from a view in Laravel?

我试图在控制器中的Request捕获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

当我var_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>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM