web-dev-qa-db-ja.com

フォームなしでファイルをアップロードする方法

私のコントローラーは投稿データを受け取ります。 Symfonyで生成されたフォームからではなく、FormDataを使用したAngularJSカスタムフォームからです。

通常のパラメーターは要求パラメーターバッグで通常受信されますが、アップロードされたファイルを取得するにはどうすればよいですか?フォームのhandleRequestと同じ操作を手動で行う必要がありますか?

私のドキュメントは cookbook article と同じです。

したがって、ドキュメントエンティティでこのメソッドを呼び出すには、投稿リクエストからUploadFileを取得する必要があります。

public function setFile(UploadedFile $file = null)

Symfony 2で手動でアップロードを受信するにはどうすればよいですか(フォームビルダーを使用せずに)。

31
Tjorriemorrie

Request には、ParameterBagと同様のFileBagがあります

だから私は簡単に指定されたファイルを取得できました:

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

クックブックのドキュメントをそのまま使用します。

$document = new Document();
$document->setFile($file);
$lead->setDocument($document);
58
Tjorriemorrie