Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to get file upload without a form

my controller receives post data. It's not from a Symfony generated form, but from an AngularJS custom form using FormData.

The normal parameters are received normally in the request parameter bag, but how do I get the file that is uploaded? Do I need to manually do the same that the form's handleRequest does?

My document is the same as the cookbook article.

So I need to get an UploadFile from the post request to call this method on the document entity:

public function setFile(UploadedFile $file = null)

How do I receive a upload manually in Symfony 2 (without using the form builder in any way)?

like image 976
Tjorriemorrie Avatar asked Aug 23 '13 10:08

Tjorriemorrie


People also ask

How can I upload a file without form?

It is like a "multipart/form-data" upload without a form. You can also upload the file directly as content inside the body of the POST request using xmlHttpRequest like this: var xmlHttpRequest = new XMLHttpRequest(); var file = ...file handle... var fileName = ...file name...

What is a file upload form?

With File Upload Forms for Google Sheets, you can easily build web forms and receive files of any size from anyone directly in your Google Drive. The forms are hosted on Google servers and all you need is a Google account to build your own forms.


1 Answers

The Request has a FileBag, similar to the ParameterBag

So I could get the file specified easily with:

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

and use the document as is from the cookbook:

$document = new Document(); $document->setFile($file); $lead->setDocument($document); 
like image 101
Tjorriemorrie Avatar answered Sep 20 '22 18:09

Tjorriemorrie