Create a controller called UploadController.php with following code.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Illuminate\Support\Facades\Storage; class UploadController extends Controller { public function index() { $files = Storage::disk('s3')->files('files'); $data = []; foreach($files as $file) { $data[] = [ 'name' => basename($file), 'downloadUrl' => url('/download/'.base64_encode($file)), 'removeUrl' => url('/remove/'.base64_encode($file)), ]; } return view('upload', ['files' => $data]); } public function store(Request $request) { $this->validate($request, [ 'file' => 'required|max:2048' ]); if ($request->hasFile('file')) { $file = $request->file('file'); $name = time() . $file->getClientOriginalName(); $filePath = 'files/' . $name; Storage::disk('s3')->put($filePath, file_get_contents($file)); } return back()->withSuccess('File uploaded successfully'); } public function destroy($file) { $file = base64_decode($file); Storage::disk('s3')->delete($file); return back()->withSuccess('File was deleted successfully'); } public function download($file) { $file = base64_decode($file); $name = basename($file); Storage::disk('s3')->download($file, $name); return back()->withSuccess('File downloaded successfully'); } } |