Vichuploaderbundle:下载文件时出现一个奇怪的页面

时间:2019-04-16 14:11:45

标签: php database symfony

我必须创建一个网站来下载软件包。 有一个帐户系统(本地或CAS身份验证)。

我使用VichUploaderBundle分发文件。然后从控制器分发它们,以便可以相应地修改数据库。

我有一个用户实体和一个包实体。 用户包含一个ArrayCollection()的程序包(许多对象)。

如果下载了软件包,则将下载的软件包添加到其arrayCollection()。

问题是这样的,当我的用户单击要下载的软件包时,数据库被正确修改,但是下载没有开始,并且重定向到一个奇怪的页面:

Image

我不明白这是什么吗?

这是我的代码:

/** 
     * Lorsque l'on clique sur un package à télécharger ou sa notice : Téléchargement
     *
     * @Route("/{id}/{type}/file", name="user_paquet_fileDDL")
     */
    public function paquetFileAction(Paquet $paquet, $type)
    {

      //  $em = $this->getDoctrine()->getManager(); //Récupération du manager
        //$this->getDoctrine()->getManager()->getRepository('PagesBundle:User')->setDDL("loughin.bastien"); //On décrémente le nombre de DDL pour l'utilisateur en question
       // $user = $this->getUser();

        $downloadHandler = $this->get('vich_uploader.download_handler'); // On prépare le téléchargement

        if($type == "package") //Si l'utilisateur clique sur le lien du package, on lui donne le fichier package
        {

            $token = $this->get('security.token_storage')->getToken();

            $user = $token->getAttribute('user');
           // $user = $this->get('serializer')->deserialize($data, 'Site\PagesBundle\Entity\UserCas', 'json');


            $this->packageDDL($paquet,$user);

            return $downloadHandler->downloadObject($paquet, $fileField = 'paquetFile', Paquet::class, null);
        }

        else //Sinon c'est qu'il a cliqué sur le lien de la notice, alors on lui donne la notice associée au package
        {
            return $downloadHandler->downloadObject($paquet, $fileField = 'noticeFile', Paquet::class, null);
        }

    }

当用户下载文件时,称为“ packageDDL()”函数:

public function packageDDL($paquet,$user)
        {
            $token = $this->get('security.token_storage')->getToken();
            $typeAuth = $token->getAttribute('typeAuth');

            dump($user);
            $em = $this->getDoctrine()->getManager(); //Récupération du manager
            $user->addPackage($paquet);
            $em->persist($user);
            $em->flush();

            if($typeAuth == 'cas')
            {
                $data = $this->get('serializer')->serialize($user, 'json');
                $token->setAttribute('user',$data) ;
            }
        }

有人可以帮我吗?

0 个答案:

没有答案