From fb2e794e37cb3b4c09dbcb5fe60c8ca3176817b8 Mon Sep 17 00:00:00 2001 From: Milos Stojanovic Date: Mon, 12 Oct 2020 10:49:54 +0200 Subject: [PATCH] download_inline configuration #141 --- CHANGELOG.md | 1 + backend/Controllers/DownloadController.php | 6 ++++-- configuration_sample.php | 1 + tests/backend/configuration.php | 1 + 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3eedbd6..639fd97 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ ## Upcoming... +* New config: 'download_inline' #141 (download configured extensions inline in the browser) * Korean language added #119 (Thanks Jinhee-Kim) * Galician language added #126 (Thanks vinpoloaire) * Russian language added #128 (Thanks BagriyDmitriy) diff --git a/backend/Controllers/DownloadController.php b/backend/Controllers/DownloadController.php index 9acdd2c..14306c4 100644 --- a/backend/Controllers/DownloadController.php +++ b/backend/Controllers/DownloadController.php @@ -66,12 +66,14 @@ class DownloadController // @codeCoverageIgnoreEnd }); - $mimes = (new MimeTypes())->getMimeTypes(pathinfo($file['filename'], PATHINFO_EXTENSION)); + $extension = pathinfo($file['filename'], PATHINFO_EXTENSION); + $mimes = (new MimeTypes())->getMimeTypes($extension); $contentType = !empty($mimes) ? $mimes[0] : 'application/octet-stream'; $disposition = HeaderUtils::DISPOSITION_ATTACHMENT; - if ($contentType == 'application/pdf') { + $download_inline = (array)$this->config->get('download_inline', ['pdf']); + if (in_array($extension, $download_inline) || in_array('*', $download_inline)) { $disposition = HeaderUtils::DISPOSITION_INLINE; } diff --git a/configuration_sample.php b/configuration_sample.php index 10aed4d..92f3b61 100644 --- a/configuration_sample.php +++ b/configuration_sample.php @@ -5,6 +5,7 @@ return [ 'public_dir' => APP_PUBLIC_DIR, 'overwrite_on_upload' => false, 'timezone' => 'UTC', // https://www.php.net/manual/en/timezones.php + 'download_inline' => ['pdf'], // download inline in the browser, array of extensions, use * for all 'frontend_config' => [ 'app_name' => 'FileGator', diff --git a/tests/backend/configuration.php b/tests/backend/configuration.php index dc038cd..1a26b04 100644 --- a/tests/backend/configuration.php +++ b/tests/backend/configuration.php @@ -5,6 +5,7 @@ return [ 'public_dir' => __DIR__.'/../../dist', 'overwrite_on_upload' => false, 'timezone' => 'UTC', // https://www.php.net/manual/en/timezones.php + 'download_inline' => ['pdf'], 'frontend_config' => [ 'app_name' => 'FileGator',