shahr's avatar
Level 10

How to upload and save image file?

Why this code does not work?

public function store(CategoryRequest $request)
{
    $image = null;
    if ($request->hasFile('image')) {
        $randomize = rand(111111, 999999);
        $extension = $request->file('image')->getClientOriginalExtension();
        $filename = $randomize . '.' . $extension;
        $image = $request->file('image')->move('images/categories/', $filename);
    }
    Category::create([
        'name' => $request->name,
        'latin' => $request->latin,
        'parent_id' => $request->parent_id,
        'image' => $image,
    ]);
    return redirect()->route('categories.index');
}

I added enctype="multipart/form-data" in my form tag now.

My code is does not uploads and only save in database.

0 likes
4 replies
isaqqer's avatar

Category::create([ 'name' => $request->name, 'latin' => $request->latin, 'parent_id' => $request->parent_id, 'image' => $filename, ]);

use filename instead of image to store the image name

shahr's avatar
Level 10

@isaqqer

I changed it but It did not save in database.

'image' => $filename,
slendagh's avatar

Why are you using the move function? Its mainly used to rename or move an existing file to a new location. Use store() or put() instead.

This works for me: $image = $request->file('image')->store('images/categories/', 'public');

*the 'public' is for visibility => source: https://laravel.com/docs/7.x/filesystem#file-visibility

If this doesn't work, maybe you're checking the wrong directory ? whats your default disk ?

Please or to participate in this conversation.