我创建了一个上传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有自己的表单构建器组件,但我想知道这个片段有什么问题。
有什么建议吗?
谢谢和问候!
答案 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');
获取您的文件信息