代码之家  ›  专栏  ›  技术社区  ›  LearnProgramming

下载文件显示未知字符[关闭]

  •  0
  • LearnProgramming  · 技术社区  · 6 年前

    我尝试在这样的页面上创建下载链接:

    <a href="uploads/testfolder/excelfile.xlsx" target="_blank">Download here</a>`
    

    当我单击链接时,它会显示一个如下图所示的页面,该页面也会在同一页面中查看。

    enter image description here

    它应该在新窗口中下载,因为我 target="_blank" . 但奇怪的是,当我尝试右键单击并在新窗口中打开时,它会自动提示我下载文件。

    3 回复  |  直到 6 年前
        1
  •  0
  •   Saurabh    6 年前

    您需要返回头响应以便正确下载文件。

    创建路由:

    Route::get('/download/{$filename}', [
        'as' => 'download-file',
        'uses' => 'YourController@download',
    ]);
    

    在控制器中:

    public function download($filename)
    {
        $path =  public_path('/yout/path/');
        $headers = [
                  'Content-Type' => 'xlsx',
               ];
    
        return response()->download($path, $filename , $headers);
    }
    

    在您看来:

    <a href="{{route('download-file', filename.xlsx)}}" target="_blank">Download</a>
    
        2
  •  0
  •   Liam Hammett    6 年前

    你可以利用HTML5 download 锚上的属性,用于在单击链接时在浏览器中强制下载。

    <a href="uploads/testfolder/excelfile.xlsx" target="_blank" download>Download here</a>
    
        3
  •  0
  •   Sachin Kumar    6 年前

    试试这个

    <a href="{{url('/')}}/uploads/testfolder/excelfile.xlsx" target="_blank" download>Download here</a>
    

    或者更改浏览器。此代码将文件下载到我的计算机上,而不是在新窗口中打开。