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?ds=sidebyside 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, [