diff --git a/app/Http/Controllers/Projects/FilesController.php b/app/Http/Controllers/Projects/FilesController.php index 8409c57..3baad31 100644 --- a/app/Http/Controllers/Projects/FilesController.php +++ b/app/Http/Controllers/Projects/FilesController.php @@ -6,6 +6,7 @@ use App\Entities\Projects\File; use App\Http\Controllers\Controller; use Illuminate\Database\Eloquent\Model; use Illuminate\Http\Request; +use File as FileSystem; class FilesController extends Controller { @@ -47,6 +48,24 @@ class FilesController extends Controller return back(); } + public function show($fileId) + { + $file = File::find($fileId); + + if ($file && file_exists(storage_path('app/public/files/'.$file->filename))) { + $extension = FileSystem::extension('public/files/'.$file->filename); + return response()->download(storage_path('app/public/files/'.$file->filename), $file->title.'.'.$extension); + } + + flash(trans('file.not_found'), 'danger'); + + if (\URL::previous() != \URL::current()) { + return back(); + } + + return redirect()->home(); + } + private function proccessPhotoUpload($data, $fileableType, $fileableId) { $file = $data['file']; diff --git a/resources/views/projects/files.blade.php b/resources/views/projects/files.blade.php index 7cff760..a6711cc 100755 --- a/resources/views/projects/files.blade.php +++ b/resources/views/projects/files.blade.php @@ -31,7 +31,9 @@ {{ $file->title }}
{{ $file->description }}
- + + {!! html_link_to_route('files.download', '', [$file->id], ['icon' => 'file', 'title' => trans('file.download')]) !!} + edit @empty diff --git a/routes/web/projects.php b/routes/web/projects.php index 00d8213..79208be 100644 --- a/routes/web/projects.php +++ b/routes/web/projects.php @@ -37,4 +37,5 @@ Route::group(['middleware' => ['web','role:admin'], 'namespace' => 'Projects'], */ Route::get('projects/{project}/files', ['as' => 'projects.files', 'uses' => 'FilesController@index']); Route::post('files/{fileable}', ['as' => 'files.upload', 'uses' => 'FilesController@create']); + Route::get('files/{file}', ['as' => 'files.download', 'uses' => 'FilesController@show']); });