From ab94b39d4c5147ca6d887b3251098ab2edf6c09b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20Perr=C3=A9al?= <guillaume.perreal@irstea.fr> Date: Thu, 22 Jan 2015 16:31:11 +0100 Subject: [PATCH] =?UTF-8?q?Utilise=20si=20possible=20stream=5Fcopy=5Fto=5F?= =?UTF-8?q?stream=20pour=20enregistrer=20les=20fichiers=20=C3=A0=20l'uploa?= =?UTF-8?q?d.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Controller/UploadController.php | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Controller/UploadController.php b/Controller/UploadController.php index 564964cc..a41a090c 100644 --- a/Controller/UploadController.php +++ b/Controller/UploadController.php @@ -123,7 +123,19 @@ class UploadController extends Controller $stream = $file->open('wb'); } - $stream->write($request->getContent()); + // Demande un filehandle plutôt que charger le contenu en mémoire + $input = $request->getContent(true); + + if(false !== $fileHandler = $stream->cast(STREAM_CAST_AS_STREAM)) { + // Utilise stream_copy_to_stream si le Gaufrette\Stream peut nous retourner un filehandle + stream_copy_to_stream($input, $fileHandler); + } else { + // Sinon fait une copie par blocs (moins performant) + while(!feof($input)) { + $stream->write(fread($input, 8192)); + } + } + fclose($input); $stream->close(); if(!$final) { -- GitLab