From f03f57dcbbbf34feb4eb03bba7ea73dfe9b182b3 Mon Sep 17 00:00:00 2001 From: Khaled Lela Date: Sat, 19 Feb 2022 21:00:00 +0200 Subject: feat(disk): add download scorm package zip. --- src/Manager/ScormDisk.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/Manager/ScormDisk.php') diff --git a/src/Manager/ScormDisk.php b/src/Manager/ScormDisk.php index 249f027..9417ef3 100644 --- a/src/Manager/ScormDisk.php +++ b/src/Manager/ScormDisk.php @@ -4,8 +4,10 @@ namespace Peopleaps\Scorm\Manager; use Illuminate\Filesystem\FilesystemAdapter; use Illuminate\Support\Facades\Storage; +use Peopleaps\Scorm\Entity\Scorm; use Peopleaps\Scorm\Exception\StorageNotFoundException; use ZipArchive; +use ZipStream\ZipStream; class ScormDisk { @@ -42,6 +44,20 @@ class ScormDisk return true; } + public function download(Scorm $scorm) + { + return response()->stream(function () use ($scorm) { + // enable output of HTTP headers + // $options = new ZipStream\Option\Archive(); + // $options->setSendHttpHeaders(true); + $zip = new ZipStream($scorm->title . ".zip"); + /** @var FilesystemAdapter $disk */ + $disk = $this->getDisk(); + $zip->addFileFromStream($scorm->title, $disk->readStream($scorm->uuid)); + $zip->finish(); + }); + } + /** * @param string $directory * @return bool -- cgit v1.2.3