首页 > 解决方案 > 如何在 Laravel 8 中存储图像

问题描述

public function post(Request $request)
{
    $request->validate([
        'foto_makanan' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
    ]);
    $imageName = time().'.'.$request->input('foto_makanan')->extension();  
    $request->input('foto_makanan')->move(public_path('images'), $imageName);

    $food = new Food();
    $food->nama_makanan = $request->input('nama_makanan');
    $food->foto_makanan = $request->input('foto_makanan');
    $food->harga = $request->input('harga');
    $food->deskripsi = $request->input('deskripsi');
    $food->stok = $request->input('stok');
    $food->category_id = $request->input('flexRadioDefault');
    $food->slug_food =  ucwords(str_replace(" ", "-", $request->input('nama_makanan')));
    $food->save();
    return redirect()->back()->with('success', 'Successfully Add Products!');
}

我需要将图像上传到 public/images 文件夹,请帮助我,这是我的控制器代码

标签: laravel

解决方案


首先,您需要将此属性添加到表单:enctype="multipart/form-data"

以这种方式验证图像:

$validatedData = $request->validate([
   'image' => 'required|image|mimes:jpg,png,jpeg,gif,svg|max:2048',
]);

如果要获取图像名称:

$name = $request->file('image')->getClientOriginalName();

并上传到public/images文件夹:

$path = $request->file('image')->store('public/images');

$path变量中将保存图像的路径


推荐阅读