image - 在 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');
}
}
解决方案
我建议你这样做:
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');
}
}
推荐阅读
- elasticsearch - ElasticSearch 单翻转索引配置
- javascript - 如何从 REACT 中的另一个同级或导入组件更新同级组件的状态
- r - 删除数据框每一列中的相同值,并指定给定列中值的位置
- python-3.x - 它是 fastparquet 模块中的错误吗
- python - Python - 将多个列表与具有重复键值的“zip”组合起来
- jquery - 多个版本的车把,需要避免它们之间的冲突
- dll - 经典 ASP 错误:Server.CreateObject 失败或找不到入口点 DllRegisterServer
- fortran - 如何找出用于编译 fortran .mod 文件的 gfortran 版本
- intellij-idea - 如果云选项在 Intellij 中不可用,应该怎么做
- java - 证明大哦符号