ThinkPHP6 缩略图上传

在MVC开发中,视图层表单中往往会有文件上传(上传图片)这一说,一般我们上传的图片需要先处理成压缩图,因为一般会是将缩略图的图片地址存入数据库,并不是原图(因为我们页面展示图片,是以缩略图的形式展示的,当点击缩略图的时候才会显示原图)所以就要考虑到原图和缩略图分开存储 

 图片上传、处理等等需要引入的拓展或者类在这里就不讲了,直接上代码; 

thinnkphp6手册中没有关于图形处理的讲解,如果想要了解可以去thinkPHP5 的手册中去了解

public function uploadFile(Request $request)
    {
        //接收表单上传的文件
        $files = request()->file();

        //对上传文件进行验证
        try {
            validate(['logo'=>'fileExt:jpg,png,jpeg'])->check($files);
            //将原图上传保存
            $logo = Filesystem::disk('public')->putFile('topic',request()->file('logo'));
        }catch (ValidateException $e){
            return $e->getError();
        }
        
        //组装路径(文件名)
        $thumb = 'storage/img/';
        $date = date('Ymd');
        //判断文件是否存在,不存在就创建
        file_exists($thumb.$date)?'':mkdir($thumb.$date,0777,true);
        $time = md5((string)time()).'.'.request()->file('logo')->extension();
        //组装文件路径
        $file=$thumbPath = $thumb.$date.'/'.$time;
        //对图片进行压缩
        try {
            //找到原图对原图进行压缩处理
            $image = \think\Image::open('storage/'.$logo);
            $image->thumb(100,100)->save($thumbPath);
        }catch (\Exception $exception)
        {
            return $exception->getMessage();
        }

    }

至此,原图以及缩略图的分开存储已完成;

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值