首页 > 解决方案 > Symfony 5 - 下载使用 vich 上传的文件

问题描述

在添加功能上传文件或许多文件感谢捆绑“vich”后,我会下载上传的文件。我的文件被保存到创建到根文件夹的上传文件夹中。

我有这段代码,但错误提示“找不到文件”..

<a download class="btn btn-info btn-sm" href="{{'upload/' ~ document.image }}"><i class="fas fa-file-download"></i> {{ document.image }} </a>

标签: symfony

解决方案


要在使用 Vich 上传程序包时下载文件,您必须在控制器类中创建一个函数并从模板中调用它。

例如:

use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Vich\UploaderBundle\Handler\DownloadHandler;

class MyController extends AbstractController
{
    /**
     * @Route(...)
     *
     * @param Document        $document        The document to download
     * @param DownloadHandler $downloadHandler Handler
     *
     * @return Response
     */
    public function downloadDocument(Document $document, DownloadHandler $downloadHandler): Response
    {
        return $downloadHandler->downloadObject($document, 'documentFile');
    }
}

形成更多信息,请参阅VichUploaderBundle serving_files_with_a_controller


推荐阅读