🔥 在 Laravel 中下载 HTTP 请求的响应
发布于 作者 Paul Redmond
Marcel Pociot 分享了一个使用 Laravel HTTP 客户端方法 sink() 将响应写入文件的技巧。
我刚刚了解到一个整洁的小型未公开 @laravelphp HTTP 客户端方法。
— Marcel Pociot 🧪 (@marcelpociot) 2023 年 6 月 20 日
"sink" 方法允许您传递一个文件名或资源。请求的响应将被写入该文件。
这使得使用额外的标题下载远程文件变得非常容易 pic.twitter.com/ZHHURltcfA
该 sink 请求选项 也在 Guzzle HTTP 客户端库中可用,以前称为 save_to
请求选项。
$client->request('GET', '/stream/20', ['sink' => '/path/to/file']); // PHP stream$resource = \GuzzleHttp\Psr7\Utils::tryFopen('/path/to/file', 'w');$stream = \GuzzleHttp\Psr7\Utils::streamFor($resource);$client->request('GET', '/stream/20', ['sink' => $stream]);
如果您想详细了解 Laravel 的 HTTP 请求类提供的各种出色功能,请查看 HTTP 请求文档。该 PendingRequest 源代码是另一个了解 Laravel HTTP 客户端工作原理的出色资源。