首页 > 解决方案 > 在 laravel 中自定义上传的图片名称

问题描述

我正在 laravel 中上传一张图片,该图片也保存在数据库和项目文件夹中。我正在使用当前时间戳重命名图像名称。但我想使用该特定表的字段名称重命名它。我怎么做?这是我的控制器功能。

public function store(Request $request)
    {
           $validator = Validator::make($request->all(), [
                'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
                ]);
                if ($validator->passes()) {
            $formInput = $request->except('image');

        //validation


        $image = $request->image;
        if($image){
            $imageName = time().'.'.$request->image->getClientOriginalExtension();
            $image->move('images/employees',$imageName);
            $formInput['image'] = $imageName;
        }

        Employee::create($formInput);
        return redirect()->to('/employeesedit');
    }
    }

标签: imagelaravel-5rename

解决方案


我建议你这样做:

public function store(Request $request)
{
       $validator = Validator::make($request->all(), [
            'image' => 'required|image|mimes:jpeg,png,jpg,gif,svg|max:2048',
            ]);
            if ($validator->passes()) {
        $formInput = $request->except('image');

    //validation


    $image = $request->image;
    if($image){
        // replace $formInput['name'] with the relevant field name
        $imageName = str_slug($formInput['field_name']).'.'.$request->image->getClientOriginalExtension();
        $image->move('images/employees',$imageName);
        $formInput['image'] = $imageName;
    }

    Employee::create($formInput);
    return redirect()->to('/employeesedit');
}
}

推荐阅读