前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Laravel 存储 base64 格式图片

Laravel 存储 base64 格式图片

原创
作者头像
小鑫
发布2022-05-11 16:31:55
1.2K0
发布2022-05-11 16:31:55
举报
文章被收录于专栏:小鑫の随笔小鑫の随笔

直接用正则替换 base64 图片的编码头即可

代码语言:php
复制
public function update(Request $request) {
    $coverImg = $request->get('cover_img');
    preg_match('/^(data:\s*image\/(\w+);base64,)/', $coverImg, $res);
    $coverImg = base64_decode(str_replace($res[1], '', $coverImg));
    $imagePath = str_random(10) . uniqid() . '.png';	// 生成图片名
    Storage::disk('uploads')->put($imagePath, $coverImg);	// 保存图片
    return env('APP_URL') . '/uploads/' . $imagePath;	// 拼接完成路径
}

有几个点要注意:

1.上面代码中的 Storage::disk('uploads') 是我在 config/filesystems.php 文件中定义的,如果直接把代码复制过去执行是不行的

config/filesystems.php

代码语言:php
复制
'disks' => [
    ...
     // 新建一个本地端uploads空间(目录) 用于存储上传的文件
    'uploads' => [
        'driver' => 'local',
        // 文件将上传到public/uploads目录 如果需要浏览器直接访问 请设置成这个
        'root' => public_path('uploads'),
      ]
    ...
],

2.部署到生产环境后需要给权限 否则无法保存图片

首发自:Laravel 存储 base64 格式图片 - 小鑫の随笔

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档