Laravel响应:下载不工作,pdf文件不下载时,点击按钮


Laravel Response::download not working and pdf file not downloaded when clicked button

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

在我的main.blade.php中,包含一个菜单栏,我有这个链接:

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

where $_SERVER['SERVER_NAME'] is localhost。

在我的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文件也没有下载。

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

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

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

它会写所有的<a></a>

控制器中路径的

也许你可以像这样删除文件路径中的public

public_path() . '/download/';