g-6ren">
gpt4 book ai didi

php - 使用 Silex/Symfony 传递响应后删除文件

转载 作者:可可西里 更新时间:2023-10-31 23:52:58 25 4
gpt4 key购买 nike

我正在我的 Silex 应用程序中使用 Knp\Snappy\Pdf 生成 pdf。文件名随机,保存到tmp目录下。

$filename = "/tmp/$random.pdf"
$snappy->generate('/tmp/body.html', $filename, array(), true);

我想在响应中返回 pdf,

$response = new Response(file_get_contents($filename));
$response->headers->set('Pragma', 'public');
$response->headers->set('Content-Type', 'application/pdf');

return $response;

pdf 在网络浏览器中正确显示。请求完成后,具有随机文件名的文件仍然存在。在返回响应之前,我无法取消链接文件。我试过使用 register_shutdown_function 注册一个关闭函数并从那里取消链接文件。但是,这似乎不起作用。有什么想法吗?

最佳答案

尽管这是旧的,但我想知道是否有人像我一样最近用谷歌搜索了这个。这是我找到的解决方案。

BinaryFileResponse 上有一个 deleteFileAfterSend() 方法从 sendFile 返回在硅胶中。所以在你的 Controller 中你可以这样做:

    return $app ->sendFile($filepath)
->setContentDisposition(ResponseHeaderBag::DISPOSITION_INLINE, $fileName)
->deleteFileAfterSend(true);

关于php - 使用 Silex/Symfony 传递响应后删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15238897/

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