Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像未保存在Laravel中的数据库中_Laravel - Fatal编程技术网

图像未保存在Laravel中的数据库中

图像未保存在Laravel中的数据库中,laravel,Laravel,我正在尝试将转换为base64并解码后的图像存储到数据库中。图像存储在存储路径中,但不保存到mysql数据库中。 我做错了什么 public function updateProfileImage(Request $request) { $user = auth('api')->user(); $image = $request->input('image'); // image base64 encoded preg_mat

我正在尝试将转换为base64并解码后的图像存储到数据库中。图像存储在存储路径中,但不保存到mysql数据库中。 我做错了什么

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更新后,软件包将不再工作。我不是说你不应该安装软件包,而是要明智地选择你的软件包!