Laravel - 强制下载响应() - >下载($ fileLocation)无法正常工作

时间:2018-06-07 07:58:16

标签: php laravel

我正在使用Laravel创建下载功能。当用户点击“下载”按钮时,我发起对控制器的ajax调用,看起来像这样 -

public function download(Resource $resource) {
    // Force download of the file
    $file_to_download   = 'https://data.domain.com/downloads/' . $resource->file_name;
    $temp_file_location =   public_path('/tmp_files/' . $resource->file_name);
    copy($file_to_download, $temp_file_location);
    return response()->download($temp_file_location)->deleteFileAfterSend(true);
}

Chrome的检查程序显示响应已填充文件内容,但不会触发实际下载。

我一直试图找到答案,但到目前为止还没有成功。真的很感谢你的帮助。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

您无法从Ajax请求下载文件,因为出于安全考虑,Javascript无法将文件保存到您的文件系统。

有一些好的套餐,如Jquery File Download

或者您可以使用传统的GET请求。