Symfony2在链配置的命名空间异常中没有找到多个文件上传


Symfony2 Multiple File Upload was not found in the chain configured namespaces exception

所以我一直在努力让我的网站一次上传多个文件,我已经非常接近(我认为),但我得到以下错误"类'Symfony'Component'HttpFoundation'File'UploadedFile'在链配置的名称空间中找不到"。我想这是因为我把文件上传到

$data = $form->getData();
$files = $data['file'];
foreach($files as $file)
{
    $photo = new Photo();
    $photo->setFile($file);
    $em->persist($file);
}

而不是连接$photo到createFormBuilder,如果有意义的话。我不确定在这里做什么,因为我不想从原则中丢失auto_mapping。这里有其他的解决办法,使学说地图上传文件?这是我的完整代码

控制器

实体

Photo Entity YML

你不能这么做。Doctrine试图坚持UploadedFile类,但它根本不是实体类。

可能的解决方法:

  • 保存文件名
  • 保存文件内容(BLOB数据)

一般来说,更简单的方法是只保存文件名,但是,您还需要移动文件,因为文件默认上传到/tmp。如果不移动它,将导致整个文件丢失。

UploadedFile附带了有用的方法move,您可以使用它来实现文件重定位。

另一个解决方案(代码更少但更复杂):

大约一周前,我发布了自己的bundle来处理文件上传。你可以在这里找到:https://github.com/jperovic/exploring-fileutility

它通过移动文件并给你文件名来解决这个问题,这样你就可以把它写到数据库

免责声明:这不是我的意图劫持你的问题与捆绑促销。只要说出来,我就把它从答案中删除。

显然我就是个白痴。花了几个小时试图弄清楚,却发现我在做

$em->persist($file);

代替

$em->persist($photo);

我的坏