Laravel:下载按钮无法正常工作

时间:2017-01-10 11:48:15

标签: laravel

我试图从页面上制作用户下载文件。但是,每当我点击下载按钮时,都会出现此错误:

  

在此服务器上找不到请求的资源/下载。

这是我的代码。

查看:

<a href="/download/file_name" class="btn btn-large pull-right"><i class="icon-download-alt"> </i> Download Brochure </a> 

控制器:

public function getDownload($file_name) {
$file_path = public_path('files/'.$file_name);
return response()->download($file_path);}

路线:

Route::get('/download/{file}', 'DownloadFileController@getDownload');

并显示:enter image description here

显示的错误是 ::

  

http://127.0.0.1:8000/download无法加载资源:服务器响应状态为404(未找到)

我只是不明白,如何解决这个问题?

并显示

  

未定义的变量:file_name(查看:C:\ xampp \ htdocs \ Land_Map \ resources \ views \ pages \ upload.blade.php)(查看:C:\ xampp \ htdocs \ Land_Map \ resources \ views \ pages \ upload .blade.php)

当我使用时:

<a href="{{ URL::to('/download/'.$file_name) }}" class="btn btn-large pull-right"><i class="icon-download-alt"> </i> Download Brochure </a>

但是,

可以正常使用
<a href="/download/php_tutorial.pdf" class="btn btn-large pull-right"><i class="icon-download-alt"> </i> Download Brochure </a>

但是,我希望用户从下载文件夹中的几个文件中进行选择。但是,不知道该怎么做。试过几种方法,但没有用。

我也尝试过:

<a href="{{route('upload')}}" class="btn btn-large pull-right"><i class="icon-download-alt"> </i> Download Brochure </a>

我实际上是在试图显示正在上传的文件,但是没有用。

但是,它显示:

  

路线[上传]未定义。 (查看:C:\ xampp \ htdocs \ Land_Map \ resources \ views \ pages \ upload.blade.php)(查看:C:\ xampp \ htdocs \ Land_Map \ resources \ views \ pages \ upload.blade.php)

但是,路线:

Route::get('/upload', 'FormUploadController@upload');

Route::post('upload', 'UploadController@upload'); 

3 个答案:

答案 0 :(得分:1)

您需要传递文件名:

<a href="/download/Guide.pdf" ....>Download Brochure</a>

如果你没有传递文件名,Laravel会寻找这条路线:

Route::get('/download', 'DownloadFileController@getDownload'); 

答案 1 :(得分:1)

我认为您的代码需要更新如下:

对于控制器

public function getDownload($file_name) {
    $file_path = public_path().'/files/'.$file_name;
    return response()->download($file_path);
}

对于刀片文件:

<a href="{{ URL::to('/download/'.$filename) }}"class="btn btn-large pull-right"><i class="icon-download-alt"> </i> Download Brochure </a>

<强>更新 在这里,请确保$filename应该从控制器视图传递到Docs。 希望这对你有用!

答案 2 :(得分:0)

在href中你必须添加文件名href =“/ download / file_name”