Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将文件发送到客户端后继续执行_Php_Symfony - Fatal编程技术网

Php 将文件发送到客户端后继续执行

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

我正在动态创建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 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-未找到文件:(当前路由)。(不是文件路径)