thankyoutybg
thankyoutybg

Reputation: 23

File not uploading

I was working on a project and was trying to develop a file uploading system for skins. When I tried to upload my skin, I was given "Call to a member function storeAs() on null"

    public function uploadSkin(Request $request)
    {
        /* $request->validate([
            'skins' => 'required|mimes:png|max:1024',
        ]); */

        $storage_dir = storage_path('app/skins');

        $request->file('skins')->storeAs($storage_dir, Auth::user->name . '.png');

        return route('settings')->with('success', 'skin uploaded :)');

    }

Form code:

    <form method="post" enctype="multipart/form-data" action="/settings">
        @csrf
        <br/>
        <div class="form-group">
            <input type="file" class="form-control-file" id="skins" name="skins" required>
        </div>
        <button type="submit" class="btn btn-success">Upload</button>
    </form>

Upvotes: 1

Views: 83

Answers (2)

Salar Pourfallah
Salar Pourfallah

Reputation: 1582

To store a file like an image or any kind of files you can use a code like this:

public function uploadSkin(Request $request){
    $image = $request->file('skins');
    if ($image != null) {
            $image->move('uploads/skins/', Auth::user()->name . $image->getClientOriginalExtension());
        }
    return route('settings')->with('success', 'skin uploaded :)');
}

Upvotes: 1

Dipak Mewada
Dipak Mewada

Reputation: 365

To uppload a file there are various ways in the laravel but for now you can try this to simply move your file to your directory:

if($files= $request->file('skins')){  
   $files->move('uploads/skins/', Auth::user->name . '.png');
}

Upvotes: 0

Related Questions