【问题标题】:Laravel : Download Button not working properlyLaravel:下载按钮无法正常工作
【发布时间】:2017-01-10 11:48:15
【问题描述】:

我正在尝试让用户从页面下载文件。但是,每当我点击下载按钮时,就会出现这个错误:

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

这是我的代码。

查看:

<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');

它显示:

显示的错误是::

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'); 

【问题讨论】:

    标签: laravel


    【解决方案1】:

    你需要传递文件名:

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

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

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

    【讨论】:

    • 谢谢,我做到了,还编辑了问题。但现在它显示:未找到在此服务器上找不到请求的资源/下载。
    • 这是另一种错误,我猜是Web服务器配置有问题。
    • 网络服务器配置,好的。我会看到的。但是,请您具体说明一下可能出了什么问题?
    • 加载资源失败:服务器响应状态为 404 (Not Found) :: 这是错误
    【解决方案2】:

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

    对于控制器

    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。 希望这对你有用!

    【讨论】:

    • 好吧,我试过了。但它显示 :: Undefined 变量:文件名(查看:C:\xampp\htdocs\Land_Map\resources\views\pages\upload.blade.php)(查看:C:\xampp\htdocs\Land_Map\resources\views\pages \upload.blade.php)
    • @Rock 查看我的更新
    • 我看到了你的更新,尝试了几种方法。但没用:/
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 2022-01-21
      • 2015-01-31
      • 1970-01-01
      • 2014-07-13
      • 2016-09-18
      • 2016-04-02
      相关资源
      最近更新 更多