我对Laravel使用Guzzle相当新颖。我目前只是将它用于我的前端和单独的REST API之间的通信。如何使用Laravel从API下载Word文档
我想从我的api下载文件,但我不知道如何去做。我可以指定文件的路径并直接下载它,但我也希望能够在浏览器中进行流式处理或查看,以便用户可以查看文档而不是下载文档。
目前我把从前端工程的GET请求(与后端做API调用)到API项目:
$resp = $client->request('GET', env('API_BASE_URL').'/project/'.$id. '/download-report', [ 'headers' => [ 'Authorization' => 'Bearer '. session()->get('api_token') ] ]);
,在我的API后端我返回文件与 - >下载()函数。
return response()->download($report->getPath());
有人可以解释什么是最好的方法来处理这种情况?
这两个问题的解决方案都很棒,只需下载它,或者实际查看word文档的内容。
提前致谢!
感谢您的回复!我目前只是将其作为base64数据提供,并将其解码回另一端。然后将其保存到临时文件并下载。我认为这与你正在做的事情是一样的,对吧? –
大致相同,但如果文件真的很大,则可以超出内存限制并崩溃。使用“sink”选项,您可以直接向文件写入字节(因为您收到它们),所以不会发生内存溢出。 –
因此,我建议在应用程序内(后端和前端之间)跳过base64编码/解码,以简化设计并能够使用“sink”。 –