图像未保存在Laravel中的数据库中
我正在尝试将转换为base64并解码后的图像存储到数据库中。图像存储在存储路径中,但不保存到mysql数据库中。 我做错了什么图像未保存在Laravel中的数据库中,laravel,Laravel,我正在尝试将转换为base64并解码后的图像存储到数据库中。图像存储在存储路径中,但不保存到mysql数据库中。 我做错了什么 public function updateProfileImage(Request $request) { $user = auth('api')->user(); $image = $request->input('image'); // image base64 encoded preg_mat
public function updateProfileImage(Request $request)
{
$user = auth('api')->user();
$image = $request->input('image'); // image base64 encoded
preg_match("/data:image\/(.*?);/",$image,$image_extension); // extract the image extension
$image = preg_replace('/data:image\/(.*?);base64,/','',$image); // remove the type part
$image = str_replace(' ', '+', $image);
$imageName = 'profile' . time() . '.' . $image_extension[1]; //generating unique file name;
Storage::disk('public')->put($imageName,base64_decode($image));
$user->update($request->all());
}
试试这个:
$user = auth('api')->user();
if ($request['image']) {
$data = $request['image'];
list($type, $data) = explode(';', $data);
list(, $data) = explode(',', $data);
$image = base64_decode($data);
$photoName = 'profile' . time() . '.' . $image_extension[1];
$request['image'] = $photoName;
Storage::disk('public')->put($photoName, $image);
$user->update($request->all());
}
我必须这么做
public function updateProfileImage(Request $request)
{
$user = auth('api')->user();
$image = $request->input('image'); // image base64 encoded
preg_match("/data:image\/(.*?);/",$image,$image_extension); // extract the image extension
$image = preg_replace('/data:image\/(.*?);base64,/','',$image); // remove the type part
$image = str_replace(' ', '+', $image);
$imageName = 'profile' . time() . '.' . $image_extension[1]; //generating unique file name;
Storage::disk('public')->put($imageName,base64_decode($image));
$user->update($request->except('image') + [
'profilePicture' => $imageName
]);
}
而且很有效我建议您使用上传程序包,如: 或 帮助您进行媒体管理,而无需在您要上载文件的每个位置编写所有这些代码行
享受它们。@porloscerrosψ类似于“profile929.jpg”的图像@Tobirdinand,
$filleble
部分在您的用户模型中是什么样子的?坏主意。。他应该使用该代码并创建自己的助手或特征,因为这是一件非常基本的事情,安装一个包就像为了一块肉杀死一头牛。最重要的是,在1-2次laravel更新后,软件包将不再工作。我不是说你不应该安装软件包,而是要明智地选择你的软件包!