所以我一直在努力让我的网站一次上传多个文件,而且我已经非常接近(我认为),但是我得到以下错误“类'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。这里有另一种解决方法,制作学说地图UploadedFile吗?这是我的完整代码
答案 0 :(得分:2)
你不能这样做。 Doctrine试图坚持UploadedFile
类,它根本不是实体类。
可能的解决方法:
通常,更简单的方法是仅保存文件名,但是,您还需要移动文件,因为默认情况下文件正在上传到/tmp
。如果没有移动它将导致完全丢失文件。
UploadedFile
附带了有用的方法move
,您可以使用它来实现文件重定位。
大约一周前,我发布了自己的处理文件上传的包。您可以在此处找到它:https://github.com/jperovic/exploring-fileutility
它通过移动文件并为您提供文件名来解决此问题,以便您可以将其写入数据库
免责声明:我打算用捆绑促销来劫持你的问题。只要说出这个词,我就会将其从答案中删除。
答案 1 :(得分:1)
显然我只是个白痴。花了好几个小时试图弄清楚,只是发现我在做什么
$em->persist($file);
而不是
$em->persist($photo);
我的不好