首页 > 解决方案 > 如何从 laravel 下载文件

问题描述

我正在尝试下载文件我的控制器中有这种方法

function DownloadLetter(Request $request)
{
    $userId = Auth::id();
    $permission = DB::table("user_permissions")->where('user_id', $userId)->first();

    if ($permission->TL_E) {
        $id = $request->query('id');
        $LettreName = DB::table('jobs')->where('id', $id)->first()->Lettre;
        if ($LettreName) {
            return Storage::download("public/Lettres/" . $LettreName);
        }
    }
}

如你所见,我要回来了Storage::download("public/Lettres/" . $LettreName);

然后在我的javascript中我有

function DownloadLetter(id){
   axios.get("/api/DownloadLetter?id="+id)
      .then(function (response) {
         console.log(response);
       })
}

当我记录响应时,我将文件作为 JSON 获取,(它不会被下载)

但是当我将javascript代码更改为此它时

var link = document.createElement("a");
link.download = "";
link.href = '/api/DownloadLetter?id='+id;
document.body.appendChild(link);
link.click();
link.remove();

我怎样才能让第一个 javascript 代码工作?

标签: javascriptphplaravel

解决方案


推荐阅读