gpt4 book ai didi

php - 如何从 Symfony 的 View 中下载文件

转载 作者:行者123 更新时间:2023-12-05 02:23:32 26 4
gpt4 key购买 nike

我有一个用 Symfony2 制作的应用程序,在我的 twig 模板中,我显示了一个包含一些 pdf 文件的表格。

此 pdf 文件(一个给用户)存储在 /app/var/pdf/xxx.pdf 中。

如果我使用:

<a href="{{ 'entity.pdf' }}">PDF</a>

我的路径是正确的,例如:symfony/app/var/pdf/123123.pdf,但是当我点击链接时,我的浏览器返回 404 Not Found 错误。显然,我已经检查过该文件是否存储在此路径中。

有什么帮助吗?

提前致谢。

最佳答案

要强制下载 pdf 文件,请在 Controller 中尝试此操作。

/**
* @Route("/download/{id}",name="pdf_download")
*/
public function downloadAction($id) {


$downloadedFile = $repository->findOneBy(
array(
'id' => $id,
)
);
$response=new Response();


$response = new Response();
$response->headers->set('Content-type', 'application/octet-stream');
$response->headers->set('Content-Disposition', sprintf('attachment; filename="%s"', $downloadedFile->getFilename() ));
$response->setContent(file_get_contents($downloadedFile->getAbsolutePath()));
$response->setStatusCode(200);
$response->headers->set('Content-Transfer-Encoding', 'binary');
$response->headers->set('Pragma', 'no-cache');
$response->headers->set('Expires', '0');
return $response;

}

在模板中

  <a href={{path('pdf_download',{'id':file.id})}}>{{file.filename}}</a>

关于php - 如何从 Symfony 的 View 中下载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21550531/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com