Symfony - csv文件读取

时间:2016-02-11 16:36:59

标签: forms file symfony csv upload

我创建了一个上传csv文件的基本表单:

    <form method="POST" action="{{ path('path') }}" enctype="multipart/form-data">
        <div>
            <label>Csv File</label>
            <input type="file" name="csvFile">
        </div>

        <button type="submit">Upload</button>
    </form>

在我的控制器中:

/**
 * @Route("/path" name="path")
 */
public function indexAction(Request $request)
{
    if ($request->isMethod('POST'))
    {
        echo '<pre>';
        print_r($request->request->get('csvFile'));
        echo '</pre>';
    }

    // return response
}

但它没有任何回报..

我知道symfony有自己的表单构建器组件,但我想知道这个片段有什么问题。

有什么建议吗?

谢谢和问候!

2 个答案:

答案 0 :(得分:0)

添加到表单enctype =“multipart / form-data”和action =“{{path('your_route')}}”;

<form method="POST" action="{{ path('your_route') }}" enctype="multipart/form-data" >
    <label>Csv File</label>
    <input type="file" id="csvFile" name="csvFile">
    <button type="submit">Upload</button>
 </form>

在您的控制器中,您可以保存并读取文件:

if ($request->isMethod('POST')) {

        $dir = $this->get('kernel')->getRootDir() . '/../web/uploads/csv/';
        $name = uniqid() . '.csv';

        foreach ($request->files as $uploadedFile) {
            $uploadedFile->move($dir, $name);
        }

        $file = $this->get('kernel')->getRootDir() . "/../web/uploads/csv/" . $name;

答案 1 :(得分:0)

您必须使用

$request->files->get('csvFile');

获取您的文件信息