From 72f438c03ac14013ceffbda003643e4f0a026dac Mon Sep 17 00:00:00 2001 From: Abilogos Date: Thu, 14 Dec 2023 15:53:45 +0300 Subject: [PATCH] make use of ResumableTotalChunks requestParam --- src/Resumable.php | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/Resumable.php b/src/Resumable.php index d76d5b4..a487237 100644 --- a/src/Resumable.php +++ b/src/Resumable.php @@ -47,7 +47,8 @@ class Resumable 'filename' => 'filename', 'chunkNumber' => 'chunkNumber', 'chunkSize' => 'chunkSize', - 'totalSize' => 'totalSize' + 'totalSize' => 'totalSize', + 'totalChunks' => 'totalChunks' ]; const WITHOUT_EXTENSION = true; @@ -178,12 +179,12 @@ public function handleTestChunk() $filename = $this->resumableParam($this->resumableOption['filename']); $chunkNumber = $this->resumableParam($this->resumableOption['chunkNumber']); $chunkSize = $this->resumableParam($this->resumableOption['chunkSize']); - $totalSize = $this->resumableParam($this->resumableOption['totalSize']); + $totalChunks = $this->resumableParam($this->resumableOption['totalChunks']); if (!$this->isChunkUploaded($identifier, $filename, $chunkNumber)) { return $this->response->header(204); } else { - if ($this->isFileUploadComplete($filename, $identifier, $chunkSize, $totalSize)) { + if ($this->isFileUploadComplete($filename, $identifier, $totalChunks)) { $this->isUploadComplete = true; $this->createFileAndDeleteTmp($identifier, $filename); return $this->response->header(201); @@ -200,14 +201,14 @@ public function handleChunk() $filename = $this->resumableParam($this->resumableOption['filename']); $chunkNumber = $this->resumableParam($this->resumableOption['chunkNumber']); $chunkSize = $this->resumableParam($this->resumableOption['chunkSize']); - $totalSize = $this->resumableParam($this->resumableOption['totalSize']); + $totalChunks = $this->resumableParam($this->resumableOption['totalChunks']); if (!$this->isChunkUploaded($identifier, $filename, $chunkNumber)) { $chunkFile = $this->tmpChunkDir($identifier) . DIRECTORY_SEPARATOR . $this->tmpChunkFilename($filename, $chunkNumber); $this->moveUploadedFile($file['tmp_name'], $chunkFile); } - if ($this->isFileUploadComplete($filename, $identifier, $chunkSize, $totalSize)) { + if ($this->isFileUploadComplete($filename, $identifier, $totalChunks)) { $this->isUploadComplete = true; $this->createFileAndDeleteTmp($identifier, $filename); return $this->response->header(201); @@ -265,13 +266,9 @@ public function resumableParams() } } - public function isFileUploadComplete($filename, $identifier, $chunkSize, $totalSize) + public function isFileUploadComplete($filename, $identifier, $totalChunks) { - if ($chunkSize <= 0) { - return false; - } - $numOfChunks = intval($totalSize / $chunkSize) + ($totalSize % $chunkSize == 0 ? 0 : 1); - for ($i = 1; $i <= $numOfChunks; $i++) { + for ($i = 1; $i <= $totalChunks; $i++) { if (!$this->isChunkUploaded($identifier, $filename, $i)) { return false; }