所以我一直在努力让我的网站一次上传多个文件,我已经非常接近(我认为),但我得到以下错误"类'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);
我的坏