2013-08-23 77 views
19

我的控制器接收發布數據。它不是來自Symfony生成的表單,而是來自使用FormData的AngularJS自定義表單。如何在沒有表格的情況下獲取文件上傳

正常參數通常在請求參數包中收到,但是如何獲取上載的文件?我是否需要手動執行與表單的handleRequest相同的操作?

我的文檔與cookbook article相同。

所以我需要從POST請求的UploadFile調用此方法對文檔實體:

public function setFile(UploadedFile $file = null)

如何在Symfony的2(手動接收上傳,而不使用表單生成器任何方式)?

回答

37

Request有FileBag,類似於ParameterBag

所以我能得到的文件輕鬆地與指定:

$data = $this->getRequest()->request->all(); 
$file = $this->getRequest()->files->get('file'); 

和使用文檔從食譜:

$document = new Document(); 
$document->setFile($file); 
$lead->setDocument($document); 
+0

如何設置文件袋的內容?我正在使用'https:// github.com/kriswallsmith/Buzz/blob/master/lib/Buzz/Browser.php',我必須發送一個包含文件包的POST請求。我的代碼中有fileObj。我用'is_file()'方法來驗證它。 –

+0

你能回答我的問題嗎?我面臨同樣的問題,這是我的問題。 https://stackoverflow.com/q/44352796/1395965 – numerah

+1

'$ this-> getRequest()'似乎在2.4中被棄用,並在3.0中被刪除。 '$ request-> files-> get('filename')'爲我工作 – Dheeraj

相關問題