HEX
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.33
System: Linux li317-225.members.linode.com 3.10.0-1062.12.1.el7.x86_64 #1 SMP Tue Feb 4 23:02:59 UTC 2020 x86_64
User: apache (48)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /var/www/hobbyistgarage/app/Http/Controllers/Admin/MediaController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Pagination\Paginator;
use Illuminate\Support\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cache;
use App\Models\Media;

class MediaController extends Controller
{
    public function index(){
        $files = Cache::remember('media', 1440, function() {
            $dir    = '/var/www/hobbyistgarage/public/media';
            $files1 = array_slice(scandir($dir),2);
            $pos = array_search('resize.sh', $files1);
            unset($files1[$pos]);
            $pos = array_search('author', $files1);
            unset($files1[$pos]);
            $pos = array_search('.gitignore', $files1);
            unset($files1[$pos]);
            
            return $files1;
        });
        
        $data = $this->paginate($files,15);
        
        return view('admin.media.index', compact('data'));
        
        
    }
    //
    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        //
        return view("admin.media.create");
    }
    
    public function store(Request $request)
    {
        
        $request->validate([
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
        ]);
        
       
        $imageName = time().'.'.$request->image->getClientOriginalExtension();
        
        $request->image->move(public_path('media'), $imageName);
        
        $image = new Media();
        
        $image->short_url = $imageName;
        
        $image->mtype = "image";
        
        $image->save();
        

        return redirect()->back()->with('success', $imageName.' was uploaded');
    }
    
    public function paginate($items, $perPage = 5, $page = null, $options = [])
    {
        $page = $page ?: (Paginator::resolveCurrentPage() ?: 1);
        $items = $items instanceof Collection ? $items : Collection::make($items);
        return new LengthAwarePaginator($items->forPage($page, $perPage), $items->count(), $perPage, $page, $options);
    }
}