2015-12-11 2 views
0

Я хочу загрузить файл с symfony, но всегда получаю сообщение об ошибке при отправке моей формы.Файл не найден Ошибка при загрузке файла с symfony

Это моя сущность код:

public function rootPath($directory) { 
    return $this->getUploadRootDir($directory) . '/' . User::cleanFilename($this->file->getClientOriginalName()); 
} 

public function getWebPath($directory) { 

    return $this->getUploadDir($directory) . '/' . User::cleanFilename($this->file->getClientOriginalName()); 
} 

public function getUploadDir($directory) { 
    return $this->user->getDir() . '/' . $this->user->getDirectoryName() . '/' . $directory; 
} 

protected function getUploadRootDir($directory) { 

    return $this->user->getRootDir() . '/' . $this->user->getDirectoryName() . '/' . $directory; 
} 

public function upload($directory) { 
    // la propriété « file » peut être vide si le champ n'est pas requis 
    if (null === $this->file) { 

     return; 
    } 

    $this->filename = User::cleanFilename($this->file->getClientOriginalName()); 
    $this->file->move($this->getUploadRootDir($directory), $this->filename); 

    // $this->url = $this->file->getClientOriginalName(); 
    //$this->filename=$this->getWebPath($directory); 

    $result = $this->rootPath($directory); 
    $this->file = null; 
    return $result; 
} 

И это то, что Symfony возвращение:

Message Origin Cause 
Le fichier n'a pas été trouvé. file Symfony\Component\Validator\ConstraintViolation 
Object(Symfony\Component\Form\Form).data.file = file3.csv 

Я пытался несколько раз, но я всегда получаю ту же проблему.

В чем причина этой ошибки?

+1

Symfony2 поваренную (http://symfony.com/doc/current/cookbook/doctrine/file_uploads.html) в настоящее время предлагают попробуйте https://github.com/dustin10/VichUploaderBundle, его легко интегрировать, а документация довольно хорошая. – Rooneyl

+0

Возможно, у вас есть проблемы с правами на вашем сервере? Файл загружается сначала в папку tmp, я думаю. Может быть, что-то не так. Возможно, папке назначения также нужны точные разрешения. Попробуйте использовать cmod -R 777 в своей папке для загрузки. Но это разрешение не для производства! –

ответ

2

Проблема решена,

enctype="multipart/form-data" я добавил и тогда проблема была решена

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