Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/298.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 &引用;响应回调不能为空";尝试在Laravel 7中发送PDF文件下载时_Php_Laravel_Download_Routes - Fatal编程技术网

Php &引用;响应回调不能为空";尝试在Laravel 7中发送PDF文件下载时

Php &引用;响应回调不能为空";尝试在Laravel 7中发送PDF文件下载时,php,laravel,download,routes,Php,Laravel,Download,Routes,在我的Laravel7应用程序中,我有一个动态生成PDF的路径,我希望浏览器将其视为文件下载 在写这篇文章的过程中,我发现了一些关于Laravel使用保存在文件系统中的文件下载文件的文档和问题,但在我的例子中,我不想将pdf存储在文件系统中。我只想在用户点击路线时动态生成它,然后浏览器下载pdf 我正在使用mpdf库,它似乎正在正确地形成一个pdf文件。但是,Laravel正在抛出一个响应回调不能为nullLogicException。在浏览器中,我看到显示的PDF数据,后面是异常堆栈跟踪 以下

在我的Laravel7应用程序中,我有一个动态生成PDF的路径,我希望浏览器将其视为文件下载

在写这篇文章的过程中,我发现了一些关于Laravel使用保存在文件系统中的文件下载文件的文档和问题,但在我的例子中,我不想将pdf存储在文件系统中。我只想在用户点击路线时动态生成它,然后浏览器下载pdf

我正在使用mpdf库,它似乎正在正确地形成一个pdf文件。但是,Laravel正在抛出一个
响应回调不能为null
LogicException。在浏览器中,我看到显示的PDF数据,后面是异常堆栈跟踪

以下是控制器方法:

public function pdf($id) {
    $manual = new \App\manual($id);
    $contents = view('admin.manual')->with($manual)->render();
    $mpdf = New \Mpdf\Mpdf();
    $mpdf->WriteHtml($contents);
    $pdf = $mpdf->output();
    return response()->streamDownload($pdf, 'manual.pdf');
}
在这个屏幕截图中,您可以看到PDF文件的数据,它告诉我它正在生成和交付:

但是,PDF对象的EOF之后会出现异常:

我从Symfony找到了相同的异常消息,但它似乎早就解决了。我没有发现其他与拉威尔7号有关的东西


如何在Laravel 7中正确指定pdf文件下载数据?

通过使用宏并指定标题,我能够获得所需的行为

    return response()->streamDownload(
            function() use ($pdf) { echo $pdf; } ,
            'manual.pdf',
            ['Content-type'=>'application/pdf']
    );