Laravel Response::download 不起作用,单击按钮时未下载 pdf 文件

Posted

技术标签:

【中文标题】Laravel Response::download 不起作用,单击按钮时未下载 pdf 文件【英文标题】:Laravel Response::download not working and pdf file not downloaded when clicked button 【发布时间】:2014-10-16 12:16:45 【问题描述】:

我正在尝试在菜单栏中实现一个链接,这样当用户单击该链接时,将自动下载一个 pdf 文件,并且它不应导航到其他页面。

在我的 main.blade.php 里面,有一个菜单栏,我有这个链接:

<a href="http://<?php echo $_SERVER['SERVER_NAME']; ?>/php/timetable/public/download">Help</a>

其中 $_SERVER['SERVER_NAME'] 是本地主机。

在我的 routes.php 中:

Route::get('/download', array('uses'=>'MainController@getDownloadHelp'));

在我的名为 MainController 的控制器中:

public function getDownloadHelp()

    $file= public_path(). "/public/download";
    $filename = 'help.pdf';
    $headers = array(
          'Content-Type' => 'application/pdf',
        );
    return Response::download($file, $filename, $headers);

PDF 文件存储在 /public/download/help.pdf 下

我现在面临的问题是,当我点击菜单栏上的“帮助”链接时,它会将我重定向到 localhost/download 这不是我想要什么。而且,pdf没有下载。

我真的需要一些帮助!我在哪里和哪里出错了?

【问题讨论】:

【参考方案1】:

您可以尝试使用 URL::to('/download') 而不是$_SERVER['SERVER_NAME']... 或在你的刀片中

echo link_to('download', $title, $attributes = array(), $secure = null);

它将写入所有&lt;a&gt;&lt;/a&gt; 的东西

对于控制器中的路径,也许您可​​以像这样删除文件路径中的公共

public_path() . '/download/';

【讨论】:

以上是关于Laravel Response::download 不起作用,单击按钮时未下载 pdf 文件的主要内容,如果未能解决你的问题,请参考以下文章

Laravel:laravel 可翻译插件

win 怎么laravel命令

laravel 安装失败

laravel validator怎么验证整数

Laravel 图像规则验证不适用于 Laravel 8,但适用于 Laravel 7 |拉拉维尔 |图片 |验证

laravel和mongo怎么搭配使用