我已完成此操作:SF2 Handle File Uploads with Doctrin
现在我尝试多次上传,但找不到更新的教程。我发现的所有东西都像2岁以上,并且不起作用。
有人可以帮我解决这个问题吗?
我尝试将 $ path , $ file 更改为数组,并添加 foreach($ this->文件作为$文件)到上传()功能,但......错误....
这是我的代码:
实体: http://pastie.org/private/1qvkhcdhojm1n1orfzuja
控制器: http://pastie.org/private/ppcoezaoicdufg5dsa9dw
Twig: http://pastie.org/private/eclba9e84kzfbh96ecgya
PS:我在路径中需要这样的东西(在数据库中):“image1.jpeg,image2.jpeg,image3.jpeg,...” 对不起,但我对此很愚蠢,只是在学习..
谢谢
答案 0 :(得分:0)
这里有一些伪示例代码,显示我如何访问多个上传的文件并为每个上传的文件保留实体
$form = $this->createForm('doc',null);
$request = $this->getRequest();
if ('POST' === $request->getMethod()) {
$form->handleRequest($request);
if ($form->isValid()) {
$data=$form->getData();
try {
$i=1;
// upload each file
foreach ($data['file'] as $item) {
$document = new Document();
$document->setFile($item);
// upload file
$document->upload();
$document->setUploadedBy($user->getUserName());
// set thumbnail path
$em->persist($document);
// generate images and set paths
$imageService->optiPathSingle($document);
$i++;
}
return $this->redirect($this->generateUrl('gleisdreieck_core_index'));
} catch (\Exception $e) {
$form->addError(new FormError($e->getMessage()));
}
}
return array(
"form"=>$form->createView(),
"tags"=>$tags
);
} else{
return array(
"form"=>$form->createView(),
"tags"=>$tags
);
}
用于formbuilder:
class DocumentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options) {
$builder->add('file', 'file', array(
'label' => 'Attachments',
'required' => true,
'attr' => array (
'accept' => 'image/*',
'multiple' => 'multiple'
)
))
->add('save', 'submit');
}