Laravel 响应:返回 PDF (文件响应) 3 个改进

问题

在控制器或路由中如何实现直接在用户浏览器显示一个图片或 PDF 之类的文件,而不是下载?

这样做可以利用 Chrome 等现代浏览器上的 PDF 阅读功能直接阅读。

回答

我们可以用 file 方法来实现直接在用户浏览器显示一个图片或 PDF 之类的文件,而不是下载。这个方法接受文件路径作为第一个参数,头信息数组作为可选的第二个参数:

return response()->file($pathToFile);

return response()->file($pathToFile, $headers);

示例:

Route::get('/pdf', function () {

    $fullPath = base_path().DIRECTORY_SEPARATOR.'ebook'.DIRECTORY_SEPARATOR.'版本控制方案.pdf';

    return response()->file($fullPath);
});

以上代码实现了当用户访问 /pdf 时,直接在用户浏览器中显示位于项目录根目录的 ebook 子目录中的 版本控制方案.pdf 文件。

返回 PDF (文件响应)

参考

本文为 Wiki 文章,邀您参与纠错、纰漏和优化
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!