我需要使用 Laravel 从 api 响应源下载文件。
一个示例 api - ( http://webservice.test.de/merchants/orders/getOrderInvoice?key=1234567894&format=json&order_no=444555666。
调用此 API 后,我将收到 JSON 响应。JSON响应如下。
{
"result": {
"success": "1",
"invoice": {
"src": "webservice.test.de/docs/invoice?secure_key=333444555666777888&key= 1234567894",
"filename": "Invoice_12345-234566.pdf"
}
}
}
当我在浏览器上运行此 src url ( ) 时,将下载['result']['invoice']['src']一个 pdf 文件 ( )。Invoice_12345-234566.pdf如何src使用 Laravel 下载文件?
Laravel 代码
public function curl($url)
{
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
curl_close($ch);
$jsonDecodedResults = json_decode($result, true);
return $jsonDecodedResults;
}
$getOrderInvoice = 'http://webservice.test.de/merchants/orders/getOrderInvoice?key=1234567894&format=json&order_no=444555666';
$jsonDecodedResults = $this->curl($getOrderInvoice);
if( $jsonDecodedResults['result']['success'] === '1' ) {
$fileSource = $jsonDecodedResults['result']['invoice']['src'];
$fileName = $jsonDecodedResults['result']['invoice']['filename'];
$headers = ['Content-Type: application/pdf'];
return response()->download($fileSource, $fileName, $headers);
}
错误 exception: "Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException"
任何帮助,将不胜感激。
守候你守候我
弑天下
www说