【问题标题】:how to upload image in laravel bootstrap auth package如何在 laravel bootstrap auth 包中上传图片
【发布时间】:2022-11-01 13:13:27
【问题描述】:
我正在尝试将图像上传为 laravel bootstrap auth 包中的个人资料图片。
在这个我试图改变一些包文件来上传图像。我还在用户表中添加了一列。
protected function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'campus_id' => $data['campus_id'],
'role' => $data['role'],
'remarks' => $data['remarks'],
'image' => $data['image'],
]);
}
我在验证功能中对 Auth 控制器进行了更改
还对用户存储功能进行了一些更改
【问题讨论】:
标签:
laravel
authentication
file-upload
profile-picture
bootstrap-ui
【解决方案1】:
我认为您需要先移动用户个人资料图像,然后再在数据库中创建其条目。
protected function create(array $data)
{
$imageName = time().'.'.$data['image']->extension();
//$data['image']->move(public_path('images'), $imageName);
$data['image']->storeAs('public/images', $imageName);
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => Hash::make($data['password']),
'campus_id' => $data['campus_id'],
'role' => $data['role'],
'remarks' => $data['remarks'],
'image' => $imageName,
]);
}
【解决方案2】:
您可以为此使用 Image intervention。安装后你可以在你的控制器中使用它use Image;
$image = $request->file('image');
$img_name = hexdec(uniqid()).'.'.$image->getClientOriginalExtension();
Image::make($image)->resize( 847.5, 431 )->save('uploads/sliders/'.$img_name);
$image_path = 'uploads/sliders/'.$img_name;
Slider::create([
'title' => $request->title,
'image' => $image_path,
'created_at' => Carbon::now()
]);
首先,您需要将图像移动到公用文件夹中所需的目录并将该目录保存在数据库中。