doumeng1897 2019-01-03 13:24
浏览 34
已采纳

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

I am trying to capture a CSV file in my Request within my controller. I have been reading the documentation on using the file system in Laravel but it seems to return NULL.

Inside of my controller:

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');
    }

Inside of my view:

<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

When I var_dump() the request, I can see the languages.csv file I upload. How can I access this file within the $request variable?

  • 写回答

1条回答 默认 最新

  • duanan1946 2019-01-03 13:28
    关注

    If you want to submit a document, you must use POST and enctype :

    <form method='POST' enctype="multipart/form-data">
        <input type='file' name='dataframe'>
        <button type='submit' name='upload'>Predict</button>
    </form>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)