Bouki
Bouki

Reputation: 1359

symfony2 file upload

I've followed this guide : http://symfony.com/doc/current/reference/forms/types/file.html

and tested the sample here

However when I try the code, I have an error :

Call to undefined method Symfony\Component\Form\Form::move()

This is happening with the line :

$form['attachment']->move($dir, $someNewFilename);

I wonder why there is this error ?

Upvotes: 8

Views: 34027

Answers (3)

tuxedo25
tuxedo25

Reputation: 4828

This doesn't use the 'Form' class, but I have had success retrieving uploads directly from the request:

/* @var Request */
$request = $this->getRequest();

/* @var UploadedFile */
$uploadedFile = $request->files->get('upfile'); //upfile must be the value of the name attribute in the <input> tag
if (null === $uploadedFile)
    return new RedirectResponse($this->generateUrl('_upload_index'));

/* @var string*/
$filename = $uploadedFile->getPathname();

Upvotes: 18

Maxooo
Maxooo

Reputation: 153

Now it's better to do as explained in the official documentation : http://symfony.com/doc/2.0/cookbook/doctrine/file_uploads.html

Upvotes: 5

Bouki
Bouki

Reputation: 1359

I finally found the solution

the doc is wrong

instead of :

$form['attachment']->move($dir, $someNewFilename);

it should be :

$form['attachment']->getData()->move($dir, $someNewFilename);

Upvotes: 17

Related Questions