2017-06-29 260 views
1

我使用這個表單來選擇一個文件,我不知道如何才能得到這個文件在我的PHP函數的路徑。Symfony獲取文件路徑

<form class="dropzone"> 

    <input name="file" type="file" multiple /> 

</form> 

我想要得到的路徑,把它放在一個變量,並用它來閱讀CSV文件,如:

public function importAction(Request $request) 

{ 

    $myFilePath = ''; //what should i do here? 

    $csv = Reader::createFromPath($myFilePath); // I use it now like this '../path/myFile1.csv' 

} 

任何幫助,將不勝感激。

回答

1

我強烈建議在你的Action函數中使用Form。

使用表單是處理Symfony中表單(和文件)提交的最佳方式。

欲瞭解更多信息,請查看此鏈接: https://symfony.com/doc/current/reference/forms/types/file.html

例如:

控制器:

/** 
* @Route("/test",name="dashboard_test") 
* @Template() 
*/ 
public function testAction(Request $request) 
{ 
    $form = $this->createFormBuilder() 
     ->add('files', FileType::class) 
     ->add('save', SubmitType::class, array('label' => 'Create Post')) 
     ->getForm(); 

    $form->handleRequest($request); 
    if ($form->isSubmitted() && $form->isValid()) 
    { 
     $someNewFilename = 'test.pdf'; 
     $dir = '/Users/'; 
     $form['files']->getData()->move($dir, $someNewFilename); 

     // done 
    } 


    return [ 
     'form' => $form->createView() 
    ]; 
} 

視圖(樹枝):

{{ form_start(form) }} 
{{ form_widget(form) }} 
{{ form_end(form) }} 
+0

這是不完整的解決方案,我不想保存文件,我只是想獲得選擇路徑。 –

+0

您可以使用$ dir變量來獲取路徑 –