joshanderson96's avatar

Images not displaying on webpage.

I want to make an image upload on my Laravel project, the form is submitting and the image is getting saved in the Public folder but the file name, for example, is 20210128142507.png, but displayed in the database is /tmp/phpf4WMIx

Controller:

public function store(Request $request)
    {
        $validateData = $request->validate([
            'title' => 'required',
            'user_id' => 'reqired',
            'hours' => 'required',
            'category' => 'required',
            'minutes' => 'required',
            'recipe' => 'required',
            'post' => 'required',
            'image' => 'mimes:jpg,png,jpeg',
    
           ]);

           $imageName = date('YmdHis') .'.'. $request->image->getClientOriginalExtension();
           $request->image->move(public_path('image'), $imageName);
           $insert['image'] = '$imageName';
    

    
           $validateData['user_id'] = Auth::user()->id;
           
           Blog::create($validateData);
           
           
    
           return redirect('blogs');

    }

Migration

public function up()
    {
        Schema::create('blogs', function (Blueprint $table) {
            $table->id();
            $table->text('title');
            $table->integer('user_id')->unsigned();
            $table->text('category');
            $table->integer('hours');
            $table->integer('minutes');
            $table->text('recipe');
            $table->text('post');
            $table->string('image')->nullable();
            $table->timestamps();

            
        });


    }

If anyone could help that would be greatly appreiated.

0 likes
1 reply
Sergiu17's avatar
Sergiu17
Best Answer
Level 60

$insert['image'] = '$imageName'; - this is never used

this should fix

$validateData['image'] = $imageName;

and wrap your code related to image inside an if statement, since image is no required

1 like

Please or to participate in this conversation.