【发布时间】:2022-01-05 13:26:34
【问题描述】:
我有 2 个 Laravel API。
一个 API 使用 curl 从第二个请求文件。
我想在不调用 new UploadedFile() 的情况下将文件作为 UploadedFile 获取。
或者作为替代方案,我想创建带有响应内容的 UploadedFile,而不将其保存为临时文件(然后使用临时路径调用 new UploadedFile())。
第一个请求文件的 API:
$url = 'http://someurl.org';
$CR = curl_init();
curl_setopt($CR, CURLOPT_URL, $url);
curl_setopt($CR, CURLOPT_FAILONERROR, true);
curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($CR, CURLOPT_HEADER, 1);
$response = curl_exec($CR);
curl_close($CR);
return $response;
第二个 API:
public function getFile(string $fileId)
{
$recordedFile = RecordedFile::where('file_id', $fileId)->first();
if (!$recordedFile) {
return response(['message' => 'file not found'], 400);
}
$headers = [
'Content-type' => Storage::mimeType($recordedFile->path),
'Content-Disposition' => 'attachment; filename=' . $recordedFile->original_name .''
];
$file = Storage::get($recordedFile->path);
return response($file, 200, $headers);
}
【问题讨论】:
标签: php laravel curl file-handling