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
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.
$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
Please or to participate in this conversation.