【问题标题】:Download file does not exist下载文件不存在
【发布时间】:2019-06-16 04:33:52
【问题描述】:

我使用 admin 文件夹构建了一个 csv 导出。该文件已很好地上传到我的公共文件夹中。 但是当我尝试使用返回下载它时,我有一个错误:

文件“/public/exportCSV.csv”不存在

我不明白为什么,我希望你有一个想法。谢谢。我在 Symfony 4 下。

    $admins = $userRepository->findByRole(User::ROLE_ADMIN);
    $filename='exportCSV';
    $extension='csv';


    $request = Request::createFromGlobals();
    if($request->query->get('exportCSV')!= null){

        $output = fopen($filename.'.'.$extension, 'w');
        fputcsv($output, array("Id","Nom","Prénom","Activé","Dernière connexion","Date d'inscription","Url avatar","Email","Username"));
        foreach ($admins as $admin){
            $id=$admin->getId();
            $lastname=$admin->getLastName();
            $firstname=$admin->getFirstName();
            $activeState=$admin->getActiveState();
            if($activeState){
                $active='Oui';
            }else{
                $active='Non';
            }
            $lastConnectedAt=$admin->getLastConnected();
            if($lastConnectedAt==null){
                $lastConnected=" ";
            }else{
                $lastConnected=$lastConnectedAt->format('Y-m-d H:i:s');
            }
            $createdAt=$admin->getCreatedAt();
            if($createdAt==null){
                $created=" ";
            }else{
                $created=$createdAt->format('Y-m-d H:i:s');
            }
            $urlAvatar=$admin->getUrlAvatar();
            $mail=$admin->getEmail();
            $username=$admin->getUsername();

            $csvLine= array($id,$lastname,$firstname,$active,$lastConnected,$created,$urlAvatar,$mail,$username);
            fputcsv($output,$csvLine);
        }
        return $this->file('/public/'.$filename.'.'.$extension);

    }

【问题讨论】:

    标签: symfony symfony4


    【解决方案1】:

    您必须使用正确的网络服务器“公共”目录路径。检查https://stackoverflow.com/a/48585423/3497902

    在你的例子中,你可以做同样的事情......

     $publicDir = $this->getParameter('kernel.project_dir') . '/public/'; # Your controller must extend AbstractController
     $output = fopen($publicDir . $filename.'.'.$extension, 'w');
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-31
      • 1970-01-01
      • 2021-09-09
      • 2014-03-03
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 1970-01-01
      相关资源
      最近更新 更多