diff --git a/lib/Controller/AssistantApiController.php b/lib/Controller/AssistantApiController.php index 7d876129a..6ac2e090f 100644 --- a/lib/Controller/AssistantApiController.php +++ b/lib/Controller/AssistantApiController.php @@ -399,10 +399,18 @@ public function getOutputFilePreview(int $ocpTaskId, int $fileId, ?int $x = 100, public function getOutputFile(int $ocpTaskId, int $fileId): DataDownloadResponse|DataResponse { try { $taskOutputFile = $this->assistantService->getTaskOutputFile($this->userId, $ocpTaskId, $fileId); - $realMime = mime_content_type($taskOutputFile->fopen('rb')); + $head = fread($taskOutputFile->fopen('rb'), 4096); + $realMime = (new \finfo(FILEINFO_MIME_TYPE))->buffer($head); + + $fileName = $ocpTaskId . '-' . $fileId; + $extension = pathinfo($taskOutputFile->getName(), PATHINFO_EXTENSION); + if ($extension !== '') { + $fileName .= '.' . $extension; + } + $response = new DataDownloadResponse( $taskOutputFile->getContent(), - $ocpTaskId . '-' . $fileId, + $fileName, $realMime ?: 'application/octet-stream', ); $response->cacheFor(60 * 60 * 24, false, true);