Thinkphp5.0上传缩略图

本文介绍了一个用于处理图片上传和自动生成缩略图的PHP函数。该函数接收图片的宽度、高度、保存路径和文件类型作为参数,通过验证图片大小和格式,将图片保存并生成指定尺寸的缩略图。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * @param $width   裁剪的宽度
 * @param $height  裁剪的高度
 * @param string $filePath  保存缩略图文件的文件夹路径
 * @param string $name 上传的文件类型
 * @return array  缩略图和原图路径
 * @author: hhygyl  * @name: uploadThumb
 * @describe:缩略图上传
 */
public function uploadThumb($width, $height, $filePath = "thumb_images", $name = "file")
{
    $file = request()->file($name);
    if($file) {
        $filePaths = ROOT_PATH.'public'.DS.'uploads'.DS.$filePath;
        $info      = $file->validate(['size' => 2014*12, 'ext' => 'jpg,png,gif,jpeg'])->move($filePaths);
        if($info) {
            $md5       = $file->hash('md5');
            $sha1      = $file->hash('sha1');
            $imgpath   = 'uploads/'.$filePath.'/'.$info->getSaveName();
            $image     = \think\Image::open($imgpath);
            $date_path = 'uploads/'.$filePath.'/thumb/'.date('Ymd');
            if(!file_exists($date_path)) {
                mkdir($date_path, 0777, true);
            }
            $thumb_path = $date_path.'/'.$info->getFilename();
            $image->thumb($width, $height)->save($thumb_path);

            return ['code' => 1, 'msg' => "上传成功", 'thumb' => '/'.$thumb_path, 'path' => '/'.$imgpath , 'savename' => $info->getSaveName(),
             'filename' => $info->getFilename(), 'info' => $info->getInfo(), 'ext' => $info->getExtension(),'file_md5' => $md5, 
             'file_sha1' => $sha1, 'file_size' => $info->getSize(),'suffix' => $info->getType()];
        }
        else {
            // 上传失败获取错误信息
            return ['code' => 0, 'msg' => $file->getError()];
        }
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值