Nevermore
Nevermore

Reputation: 1743

Laravel Driver [] is not supported

FileSystem :

'disks' => [

        'local' => [
            'driver' => 'local',
            'root' => storage_path('app'),
        ],

        'public' => [
            'driver' => 'local',
            'root' => storage_path('app/public'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

        'shares' => [
            'driver' => 'local',
            'root' => public_path('shares'),
            'visibility' => 'public',
        ],

        's3' => [
            'driver' => 's3',
            'key' => env('AWS_KEY'),
            'secret' => env('AWS_SECRET'),
            'region' => env('AWS_REGION'),
            'bucket' => env('AWS_BUCKET'),
        ],

    ],

My controller :

public function store(Request $request) {
        $rules = [
            'user_id'           => 'required|exists:users,id',
            'patient_case_id'   => 'required|exists:patient_cases,id',
            'shared_with'       => 'required|exists:users,id',
        ];

        $this->validate($request, $rules);

        $data = $request->all();
        $data['shared_file'] = $request->file('file')->store('shares/'.$data["user_id"], $data["shared_file"]->getClientOriginalName());

        $newShare = WayneRooney::create($data);
        return $this->showOne($newShare, 201);
    }

if i leave store method empty, it works and writes file in shares folder in public path with a unique id. But i want to write file with original name under the shares/{USER_ID} folder.

how can i do this ?

Upvotes: 0

Views: 4013

Answers (1)

Hiren Gohel
Hiren Gohel

Reputation: 5041

If you would not like a file name to be automatically assigned to your stored file, you may use the storeAs method, which receives the path, the file name, and the (optional) disk as its arguments:

$path = $request->file('avatar')->storeAs(
     'avatars', $request->user()->id
);

you may also use the putFileAs method on the Storage facade, which will perform the same file manipulation as the example above:

$path = Storage::putFileAs(
     'avatars', $request->file('avatar'), $request->user()->id
);

Hope this fixed your issue!

Upvotes: 3

Related Questions