2017-11-25 76 views
0

我有以下函数定义:无法在UploadedFile的Symfony的获得文件内容

public function save(UploadedFile $file, string $fileSystemName) 
{ 
    $fs = $this->fileSystemMap->get($fileSystemName); 

    $contents = file_get_contents($file->getRealPath()); 
    $filename = sprintf('%s/%s/%s/%s.%s', date('Y'), date('m'), date('d'), uniqid(), $file->getClientOriginalExtension()); 

    $fs->write($fileName, $contents); 
} 

当代码运行:

的file_get_contents($文件 - > getRealPath());

它抛出一个错误说:

警告:的file_get_contents(/ tmp目录/ phpM9Ckmq):未能打开流:没有这样的文件或目录

请注意,我也试着使用$ file-> getPathName(),但结果是一样的。

这是怎么发生的?

谢谢!

+1

提供您正在使用的sf版本 – habibun

+1

为什么不使用移动方法? '$ file-> move($ directory,$ name)' – Orange18947

回答

0

可以在UploadFormType使用的Symfony \分量\表格\延期\核心\型号\文件类型的文件

喜欢的东西:

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder 
     ->add('file', UploadFormType::class); 
} 

之后,你可以做这样的事情在你的控制器

$form = $this->get('form.factory')->create(UploadFormType::class); 
$form->handleRequest($request); 

$file = $form->getData(); 

$文件将\ SplFileInfo的实例,你可以使用$文件 - > getRealPath()方法。