diff --git a/app/Http/Controllers/Common/Uploads.php b/app/Http/Controllers/Common/Uploads.php index c29ce9159..ed7f809c0 100644 --- a/app/Http/Controllers/Common/Uploads.php +++ b/app/Http/Controllers/Common/Uploads.php @@ -34,6 +34,22 @@ class Uploads extends Controller return $this->streamMedia($media); } + public function inline($id) + { + try { + $media = Media::find($id); + } catch (\Exception $e) { + return response(null, 204); + } + + // Get file path + if (!$this->getMediaPathOnStorage($media)) { + return response(null, 204); + } + + return $this->streamMedia($media, 'inline'); + } + /** * Get the specified resource. * diff --git a/app/Traits/Uploads.php b/app/Traits/Uploads.php index 4c73bc920..3230abaa6 100644 --- a/app/Traits/Uploads.php +++ b/app/Traits/Uploads.php @@ -118,7 +118,7 @@ trait Uploads return $path; } - public function streamMedia($media) + public function streamMedia($media, $disposition = 'attachment') { return response()->streamDownload( function() use ($media) { @@ -133,6 +133,7 @@ trait Uploads 'Content-Type' => $media->mime_type, 'Content-Length' => $media->size, ], + $disposition, ); } diff --git a/routes/admin.php b/routes/admin.php index be8a23405..76703b253 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -10,6 +10,7 @@ use Illuminate\Support\Facades\Route; */ Route::group(['as' => 'uploads.', 'prefix' => 'uploads'], function () { + Route::get('{id}/inline', 'Common\Uploads@inline')->name('inline'); Route::delete('{id}', 'Common\Uploads@destroy')->name('destroy'); });