微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

laravel 在 storage/app/public 中下载文件 pdf

如何解决laravel 在 storage/app/public 中下载文件 pdf

嗨,我在 storage/app/public 中有一个 pdf 文件,我想按一个按钮下载它

所以我在刀片上有按钮

<button type="button" class="btn btn-success" id="planningDwld" data-namefile="{{$planning->file_name}}">
       Scarica planning caricato il 
       {{Carbon\Carbon::parse($planning->date_ins)->format('d/m/Y')}}
       </button>

和 javascript ajax 调用

  $(document).on("click",'#planningDwld',function(e) {
    $filename = $(this).attr("data-namefile");
    $.ajax({
    type: 'get',url: "{{ url('/downloadFile') }}",data: {
     'filename': $filename
    },success: function(data) {
    }
   }); //fine ajax

我在控制器中有一个函数

public function downloadFile()
    {
        $filename = request("filename");
        $path = storage_path().'/'.'app'.'/public/';
        $pathToFile = $path.$filename;

        return response()->download($pathToFile);
    }   

但是当我点击按钮时,它不会下载文件,它只会在我点击 chrome 调试网络行中的下载文件和预览版 chrome 时才下载

%PDF-1.5
%âãÏÓ
10 0 obj
<</Linearized 1/L 24374/O 12/E 19873/N 1/T 24073/H [ 507 175]>>
endobj
                  
33 0 obj
<</DecodeParms<</Columns 4/Predictor 12>>/Filter/FlateDecode/ID[<63DA52A9430528F2C6338FF33BE7B657><BC91512376F61B47BFE7E75DF1F5D828>]/Index[10 37]/Info 9 0 R/Length 101/Prev 24074/Root 11 0 R/Size 47/Type/XRef/W[1 2 1]>>stream
hÞbbd``b`š$ü€ãN Á   "äAÄS Áœ"AÜWp±V¶@‚»ÄÒé}béXß@¬@‚u;ˆpl ÂHlÃÀÄÈ0d%#ÄÆw_–pH
endstream
endobj
startxref
0
%%EOF
           
46 0 obj
<</Filter/FlateDecode/I 113/L 97/Length 90/S 38>>stream
hÞb``e``òd¯•¨€ˆY8ÅD¡˜a'Ó³d­I+Œ…udþŸ³±ˆic)óEvû'_»Æ̪†×6’aå#Ÿ‘     À¶Òo
endstream
endobj
11 0 obj
<</Metadata 2 0 R/PageLabels 6 0 R/Pages 8 0 R/Type/Catalog>>
endobj ........ETC.....

为什么?我也尝试定义标题但不起作用 谢谢

编辑

我唯一的解决方案是不使用 javascript ajax 调用,而只在 html Blade 中进行

   <a href="https://example.com/drh/downloadFile?filename={{$planning->file_name}}" 
    class="btn btn-primary"> Scarica planning caricato il 
    {{Carbon\Carbon::parse($planning->date_ins)->format('d/m/Y')}}</a>

在控制器中就是这个

   public function downloadFile()
    {
        $filename = request("filename");
        return response()->download(storage_path("app/public/{$filename}"));
    }   

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。