Vichuploaderbundle: 是否可以使用 VichUploader 在 Action 中保存上传的文件?

创建于 2013-02-21  ·  3评论  ·  资料来源: dustin10/VichUploaderBundle

我知道这不是 VichUploader 的目标,但我希望这是可能的,因为 VichUploader 太好处理文件字段,不仅在数据库中,而且在模板中!

情况是我在服务器中已经有一个文件,我希望它可以被 VichUploader 保存和重新定位。

我的代码在行动:

use Symfony\Component\HttpFoundation\File\File;
......
class documentController extends Controller {
......
        public function updateAction(Request $request){
                ......
                $form = $this->createForm(new DocumentType(), $doc);  
                ........
                if ($form->isValid()) {
                        $baseDir = $this->get('kernel')->getRootDir() . "/../web/uploads";  

                        $fileThumbnail = new File($baseDir."/image.jpg");  

                        $doc->setImgThumbnail($fileThumbnail->getFilename());

                        $sm = $this->get('vich_uploader.storage');
                        $sm->upload($doc);

                        $em->persist($doc);
                        $em->flush();
                        .......
                } //eof if
        }
}

我尝试使用 VichUploader 来保存没有表单类的上传文件,但它不适合我的方式。

我想知道是否可以使用 VichUploader 而不使用 Form 保存上传的文件?

谢谢,

最有用的评论

@Baachi@ftassi

@Baachi你是对的!
它可以通过 UploadedFile 类来完成。 这是一个黑客,但它简单而有效。

可行的解决方案是

$fileThumbnail = new UploadedFile($baseDir.$filename, 'image.jpg', null, null, null, true);
$doc->setFileThumbnail($fileThumbnail);

$em->persist($doc);
$em->flush();

一切都很完美。

所有3条评论

这行不通(我猜)。 为了触发上传过程,您应该将 UploadedFile 绑定到实体,而您正在绑定一个 File 实例。

@ftassi存在解决方案。
UploadedFile类有一个test参数。 如果此参数true ,symfony 将模拟文件上传。

@Baachi@ftassi

@Baachi你是对的!
它可以通过 UploadedFile 类来完成。 这是一个黑客,但它简单而有效。

可行的解决方案是

$fileThumbnail = new UploadedFile($baseDir.$filename, 'image.jpg', null, null, null, true);
$doc->setFileThumbnail($fileThumbnail);

$em->persist($doc);
$em->flush();

一切都很完美。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

seddighi78 picture seddighi78  ·  4评论

vialcollet picture vialcollet  ·  5评论

jcg678 picture jcg678  ·  6评论

petrjirasek picture petrjirasek  ·  7评论

benIT picture benIT  ·  3评论