HOME


Mini Shell 1.0
La Pieza.DO | Todo lo que buscas!

Bienvenido de nuevo!

Acceso Cuenta Delivery
DIR: /var/www/devs.lapieza.net/app/Http/Controllers/
Upload File :
Current File : /var/www/devs.lapieza.net/app/Http/Controllers/AizUploadController.php
<?php



namespace App\Http\Controllers;



use Illuminate\Http\Request;

use App\Models\Upload;

use Response;

use Auth;

use Storage;

use Image;

use enshrined\svgSanitize\Sanitizer;



class AizUploadController extends Controller

{

    public function index(Request $request)

    {



        $all_uploads = (auth()->user()->user_type == 'seller') ? Upload::where('user_id', auth()->user()->id) : Upload::query();

        $search = null;

        $sort_by = null;



        if ($request->search != null) {

            $search = $request->search;

            $all_uploads->where('file_original_name', 'like', '%' . $request->search . '%');

        }



        $sort_by = $request->sort;

        switch ($request->sort) {

            case 'newest':

                $all_uploads->orderBy('created_at', 'desc');

                break;

            case 'oldest':

                $all_uploads->orderBy('created_at', 'asc');

                break;

            case 'smallest':

                $all_uploads->orderBy('file_size', 'asc');

                break;

            case 'largest':

                $all_uploads->orderBy('file_size', 'desc');

                break;

            default:

                $all_uploads->orderBy('created_at', 'desc');

                break;

        }



        $all_uploads = $all_uploads->paginate(60)->appends(request()->query());





        return (auth()->user()->user_type == 'seller')

            ? view('seller.uploads.index', compact('all_uploads', 'search', 'sort_by'))

            : view('backend.uploaded_files.index', compact('all_uploads', 'search', 'sort_by'));

    }



    public function create()

    {

        return (auth()->user()->user_type == 'seller')

            ? view('seller.uploads.create')

            : view('backend.uploaded_files.create');

    }





    public function show_uploader(Request $request)

    {

        return view('uploader.aiz-uploader');

    }

    public function upload(Request $request)

    {

        $type = array(

            "jpg" => "image",

            "jpeg" => "image",

            "png" => "image",

            "svg" => "image",

            "webp" => "image",

            "gif" => "image",

            "mp4" => "video",

            "mpg" => "video",

            "mpeg" => "video",

            "webm" => "video",

            "ogg" => "video",

            "avi" => "video",

            "mov" => "video",

            "flv" => "video",

            "swf" => "video",

            "mkv" => "video",

            "wmv" => "video",

            "wma" => "audio",

            "aac" => "audio",

            "wav" => "audio",

            "mp3" => "audio",

            "zip" => "archive",

            "rar" => "archive",

            "7z" => "archive",

            "doc" => "document",

            "txt" => "document",

            "docx" => "document",

            "pdf" => "document",

            "csv" => "document",

            "xml" => "document",

            "ods" => "document",

            "xlr" => "document",

            "xls" => "document",

            "xlsx" => "document"

        );



        if ($request->hasFile('aiz_file')) {

            $upload = new Upload;

            $extension = strtolower($request->file('aiz_file')->getClientOriginalExtension());



            if (

                env('DEMO_MODE') == 'On' &&

                isset($type[$extension]) &&

                $type[$extension] == 'archive'

            ) {

                return '{}';

            }



            if (isset($type[$extension])) {

                $upload->file_original_name = null;

                $arr = explode('.', $request->file('aiz_file')->getClientOriginalName());

                for ($i = 0; $i < count($arr) - 1; $i++) {

                    if ($i == 0) {

                        $upload->file_original_name .= $arr[$i];

                    } else {

                        $upload->file_original_name .= "." . $arr[$i];

                    }

                }



                if($extension == 'svg') {

                    $sanitizer = new Sanitizer();

                    // Load the dirty svg

                    $dirtySVG = file_get_contents($request->file('aiz_file'));



                    // Pass it to the sanitizer and get it back clean

                    $cleanSVG = $sanitizer->sanitize($dirtySVG);



                    // Load the clean svg

                    file_put_contents($request->file('aiz_file'), $cleanSVG);

                }



                $path = $request->file('aiz_file')->store('uploads/all', 'local');

                $size = $request->file('aiz_file')->getSize();



                // Return MIME type ala mimetype extension

                $finfo = finfo_open(FILEINFO_MIME_TYPE);



                // Get the MIME type of the file

                $file_mime = finfo_file($finfo, base_path('public/') . $path);

                



                if ($type[$extension] == 'image' && get_setting('disable_image_optimization') != 1) {

                    try {

                        $img = Image::make($request->file('aiz_file')->getRealPath())->encode();

                        $height = $img->height();

                        $width = $img->width();

                        if ($width > $height && $width > 1500) {

                            $img->resize(1500, null, function ($constraint) {

                                $constraint->aspectRatio();

                            });

                        } elseif ($height > 1500) {

                            $img->resize(null, 800, function ($constraint) {

                                $constraint->aspectRatio();

                            });

                        }

                        $img->save(base_path('public/') . $path);

                        clearstatcache();

                        $size = $img->filesize();

                    } catch (\Exception $e) {

                        //dd($e);

                    }

                }



                if (env('FILESYSTEM_DRIVER') != 'local') {

                    

                    Storage::disk(env('FILESYSTEM_DRIVER'))->put(

                        $path,

                        file_get_contents(base_path('public/') . $path),

                        [

                            'visibility' => 'public',

                            'ContentType' =>  $extension == 'svg' ? 'image/svg+xml' : $file_mime

                        ]

                    );

                    // dd($storage);

                    if ($arr[0] != 'updates') {

                        unlink(base_path('public/') . $path);

                    }

                }



                $upload->extension = $extension;

                $upload->file_name = $path;

                $upload->user_id = Auth::user()->id;

                $upload->type = $type[$upload->extension];

                $upload->file_size = $size;

                $upload->save();

            }

            return '{}';

        }

    }



    public function get_uploaded_files(Request $request)

    {

        $uploads = Upload::where('user_id', Auth::user()->id);

        if ($request->search != null) {

            $uploads->where('file_original_name', 'like', '%' . $request->search . '%');

        }

        if ($request->sort != null) {

            switch ($request->sort) {

                case 'newest':

                    $uploads->orderBy('created_at', 'desc');

                    break;

                case 'oldest':

                    $uploads->orderBy('created_at', 'asc');

                    break;

                case 'smallest':

                    $uploads->orderBy('file_size', 'asc');

                    break;

                case 'largest':

                    $uploads->orderBy('file_size', 'desc');

                    break;

                default:

                    $uploads->orderBy('created_at', 'desc');

                    break;

            }

        }

        return $uploads->paginate(60)->appends(request()->query());

    }



    public function destroy($id)

    {

        $upload = Upload::findOrFail($id);



        if (auth()->user()->user_type == 'seller' && $upload->user_id != auth()->user()->id) {

            flash(translate("You don't have permission for deleting this!"))->error();

            return back();

        }

        try {

            if (env('FILESYSTEM_DRIVER') != 'local') {

                Storage::disk(env('FILESYSTEM_DRIVER'))->delete($upload->file_name);

                if (file_exists(public_path() . '/' . $upload->file_name)) {

                    unlink(public_path() . '/' . $upload->file_name);

                }

            } else {

                unlink(public_path() . '/' . $upload->file_name);

            }

            $upload->delete();

            flash(translate('File deleted successfully'))->success();

        } catch (\Exception $e) {

            $upload->delete();

            flash(translate('File deleted successfully'))->success();

        }

        return back();

    }



    public function bulk_uploaded_files_delete(Request $request)

    {

        if ($request->id) {

            foreach ($request->id as $file_id) {

                $this->destroy($file_id);

            }

            return 1;

        } else {

            return 0;

        }

    }



    public function get_preview_files(Request $request)

    {

        $ids = explode(',', $request->ids);

        $files = Upload::whereIn('id', $ids)->get();

        $new_file_array = [];

        foreach ($files as $file) {

            $file['file_name'] = my_asset($file->file_name);

            if ($file->external_link) {

                $file['file_name'] = $file->external_link;

            }

            $new_file_array[] = $file;

        }

        // dd($new_file_array);

        return $new_file_array;

        // return $files;

    }



    public function all_file()

    {

        $uploads = Upload::all();

        foreach ($uploads as $upload) {

            try {

                if (env('FILESYSTEM_DRIVER') != 'local') {

                    Storage::disk(env('FILESYSTEM_DRIVER'))->delete($upload->file_name);

                    if (file_exists(public_path() . '/' . $upload->file_name)) {

                        unlink(public_path() . '/' . $upload->file_name);

                    }

                } else {

                    unlink(public_path() . '/' . $upload->file_name);

                }

                $upload->delete();

                flash(translate('File deleted successfully'))->success();

            } catch (\Exception $e) {

                $upload->delete();

                flash(translate('File deleted successfully'))->success();

            }

        }



        Upload::query()->truncate();



        return back();

    }



    //Download project attachment

    public function attachment_download($id)

    {

        $project_attachment = Upload::find($id);

        try {

            $file_path = public_path($project_attachment->file_name);

            return Response::download($file_path);

        } catch (\Exception $e) {

            flash(translate('File does not exist!'))->error();

            return back();

        }

    }

    //Download project attachment

    public function file_info(Request $request)

    {

        $file = Upload::findOrFail($request['id']);



        return (auth()->user()->user_type == 'seller')

            ? view('seller.uploads.info', compact('file'))

            : view('backend.uploaded_files.info', compact('file'));

    }

}