Php 将文件发送到客户端后继续执行
我正在动态创建pdf文件并将其发送到客户端:Php 将文件发送到客户端后继续执行,php,symfony,Php,Symfony,我正在动态创建pdf文件并将其发送到客户端: private function createPdf($foo) { //Delete pdf file if it exists if(file_exists('path_to_directory' . $foo->getId() . '.pdf')) unlink('path_to_directory' . $foo->getId() . '.pdf'); //Create new pdf f
private function createPdf($foo)
{
//Delete pdf file if it exists
if(file_exists('path_to_directory' . $foo->getId() . '.pdf'))
unlink('path_to_directory' . $foo->getId() . '.pdf');
//Create new pdf file
$this->get('knp_snappy.pdf')->generateFromHtml(
$this->renderView(
'AcmeFooBundle:Default:pdfTemplate.html.twig', array(
'foo' => $foo)
),
'path_to_directory' . $foo->getId() . '.pdf'
);
// open the file in a binary mode
$fp = fopen('path_to_directory' . $foo->getId() . '.pdf', 'rb');
header("Content-Type: application/pdf");
header('Content-Disposition: attachment; filename="foo.pdf"');
// dump the picture and stop the script
fpassthru($fp);
exit;
}
这个函数工作正常,但我希望在将文件发送到客户端后继续执行,以呈现“成功”模板并将其发送到客户端。我尝试过删除
exit代码>和此:,但没有成功。有什么想法吗 通过向文件生成按钮添加Javascript事件实现:
纯JS:
<script>
window.onload = function() {
function redirectToMeeting() {
window.setTimeout(function() {
window.location.href="url_to_go";
}, 2000);
}
if(document.getElementsByClassName('create-file-button')) {
document.getElementsByClassName('create-file-button')[0].addEventListener('click', redirectToMeeting);
}
};
</script>
$(function(){
$('#create-file-button').submit(function(ev) {
$("#continue").show();
});
});
提交表单时,将显示一个新按钮(#continue
),允许用户转到下一页(url\u to\u go
)。解释“但没有成功”。@nl-x-我不明白如何将链接示例应用于此案例。我所试过的都是一个错误。更准确一点。什么错误?顺便说一下,passthru
和fpassthru
是完全不同的东西。@nl-x-未找到文件:(当前路由)。(不是文件路径)