Symfony PunkAveFileUploaderBundle > handleFileUpload 之前的映像名称



Symfony2 PunkAve FileUpload Bundle可以工作,但由于BlueImp的UploadHandler内部存在返回,因此无法获取文件名。

<?php
/**
 *
 * @Route("/upload")
 * @Template()
 */
public function uploadAction(Request $request)
{
    $editId = $this->getRequest()->get('editId');
    if (!preg_match('/^d+$/', $editId))
    {
        throw new Exception("Bad edit id");
    }
    $em = $this->getDoctrine()->getManager();
    $entity = $em->getRepository('Foobar:Foobar')->find($editId);
    $destinationFolder = 'test';
    $fileUploader = $this->get('punk_ave.file_uploader');
    $imageName = $fileUploader->handleFileUpload(array('folder' => $destinationFolder ));
    $imageEntity = new FoobarEntityImage();
    $imageEntity->setImage($imageName);
    $imageEntity->setFolder($destinationFolder);
    $em->persist($media);
    $em->flush();
    return true;
}

上面的例子上传了图像。

变量$imageName触发fileUploadHandler。有一个返回,为什么它不转到下一行应该保存图像名称的地方。

我怎么还能让它在Symfony工作?在他处理上传后将文件名保存在实体中?

正如他们在文档中所说:handleFileUpload不会返回,因为响应是由BlueImp的UploadHandler类在本机PHP中生成的handleFileUpload的末尾有exit(0);,所以当您调用它时,整个过程就停止在那里。如果您想将文件保存到数据库,您应该在处理请求的操作中执行此操作(从文档的示例来看,它将是editAction),然后,正如文档所说,使用getFiles获取文件名列表,并在您认为合适的情况下将其镜像到数据库中

最新更新