Документация по этому поводу оставляет желать лучшего
А что вы хотите от документации? В самом примитивном варианте вам уже сказали:
public function uploadFile(File $file) {
$file->move($this->uploadDir, $this->generateUniqName($file));
}
Не нравится хардкодит пут к файлу, хочу автоматизировать
Путь иньектится из контейера в виде параметра.
services:
file_uploader:
class: FileUploader
arguments: ['%kernel.root_dir%/../web/uploads']
а еще вместо этого можно заюзать FlySystem тот же как абстракцию над файловой системой. Тогда вообще все удобненько.
мне также не нравится vich uploader bundle потому я юзаю свое решение. На днях же в симфони gitter-е выкладывали относительно приличный бандл для аплоада:
https://github.com/atom-azimov/uploader-bundle но в бою я его не проверял, хотя идеологически он вроде бы правильный.