From: Dan Brown Date: Sat, 2 Apr 2022 17:42:15 +0000 (+0100) Subject: Fixed streamed outputs in more extreme scenarios X-Git-Tag: v22.04~1^2~14^2~3 X-Git-Url: http://source.bookstackapp.com/bookstack/commitdiff_plain/6749faa89a9faa6f21ba173c1736f6bbba72a8f8 Fixed streamed outputs in more extreme scenarios Fixes hitting memory limits where downloaded file sizes are much greater than memory limit. Stopping and flushing output buffer seemed to stop limits causing issues when fpassthru is used. Tested with 24M memory limit and 734M file --- diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index ae1f4e4ba..4c979c26a 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -127,6 +127,7 @@ abstract class Controller extends BaseController protected function streamedDownloadResponse($stream, string $fileName): StreamedResponse { return response()->stream(function() use ($stream) { + ob_end_clean(); fpassthru($stream); fclose($stream); }, 200, [