将 post 请求发送到 Laravel 控制器中的另一个 api。它返回 .pdf 文件作为响应。我想将此文件保存到存储中。我收到 FileNotFound 异常。
这是代码
public function cvToPDF(Request $request)
{
$response = Http::withHeaders(['Content-Type' => 'application/pdf'])
->withToken(Request()->bearerToken())
->post('http://some-endpoint', $request->all());
Storage::disk('s3')->putFile('drive/files', $response);
return $response;
}
return $response 在客户端工作。我可以使用此端点下载 pdf。但是 Storage::disk 引发异常。
因为您尝试保存响应,而不是文件。
sink() 方法的解决方法 - 这可能有效。
public function cvToPDF(Request $request)
{
$tempName = tempnam(sys_get_temp_dir(), 'response').'.pdf';
$response = Http::sink($tempName)
->withHeaders(['Content-Type' => 'application/pdf'])
->withToken(Request()->bearerToken())
->post('http://some-endpoint', $request->all());
Storage::disk('s3')->putFile('drive/files', new File($tempName));
return $response;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句