我正在使用 Symfony 3.1 尝试将多个文件附加到一个表单。
到目前为止,我可以为每个文件上传文件、创建一个实体并存储在数据库中。将 OneupUploaderBundle 与 FineUploader 一起使用。
问题是这些文件没有附加到我的其余表单数据中。
<?php
namespace AppBundle\EventListener;
use Doctrine\ORM\EntityManager;
use Oneup\UploaderBundle\Event\PostPersistEvent;
use AppBundle\Entity\AppointmentFile;
class AppointmentUploadListener
{
protected $manager;
public function __construct(EntityManager $manager)
{
$this->manager = $manager;
}
public function onUpload(PostPersistEvent $event)
{
dump($event);
die();
$file = $event->getFile();
$object = new AppointmentFile();
$object->setFilename($file->getPathName());
$this->manager->persist($object);
$this->manager->flush();
}
}
我尝试将我的表单序列化添加到上传参数,但如果我有 3 个文件,它将上传我的表单数据 3 次。
var uploader = new qq.FineUploader({
element: document.getElementById('fine-uploader'),
debug: true,
form: 'newAppointmentForm',
request: {
endpoint: "{{ oneup_uploader_endpoint('appointment') }}",
params: {
appointment: $('#newAppointmentForm').serialize()
},
}
});
主要目的是存储带有附件的约会。因此,实体是 Appointment(列:约会数据和文件的数组集合)和 AppointmentFile(列:id、文件名和 mime/type)。
欢迎任何建议。