2013-08-23 3 views
19

мой контроллер получает данные после сообщения. Это не из созданной Symfony формы, а из пользовательской формы AngularJS с использованием FormData.Как загрузить файл без формы

Нормальные параметры обычно принимаются в пакете параметров запроса, но как получить загружаемый файл? Нужно ли вручную делать то же самое, что делает формы формы?

Мой документ такой же, как у cookbook article.

Так что мне нужно, чтобы получить 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

Смежные вопросы