tp5中上传图片方法,并生成水印

1.HTML代码:

<!doctype html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>文件上传</title> 
</head> 
<body> 
<h2>文件上传</h2> 
<form method="post" enctype="multipart/form-data" class="form" action="">选择文件: 
  <input type="file" class="files" name="files"><br/> 
  <input type="submit" class="btn" value=" 提交 "> 
</form> 
</body> 
</html>

2.PHP代码

$pic = upload('files')

3.公共方法代码

/*
 * 图片上传方法,并且带有水印
 */
function upload($images){
    $isWater = 1;   //开启水印
    $wordOrWater = 1;  //图片或者文字水印
    // 获取表单上传文件
    $file = request()->file($images);
    if($file){
        // 移动到框架应用根目录/public/uploads/ 目录下
        $info = $file->validate(['size' => 15678, 'ext' =>'jpg,png,gif'])
            ->move(ROOT_PATH . 'public' . DS . 'uploads');
        if ($info){
        
            if ($isWater == 1){  //判断是否开启水印
                //生成水印
                $water_path = 'waters/'.$info->getFilename();
                //打开图片
                $image =\think\Image::open($info);
                
                if ($wordOrWater == 2){  //图片水印
                    $image->water('../logo.png',\think\Image::THUMB_CENTER)->save($water_path);
                        
                } elseif ($wordOrWater == 1){   //文字水印
                    $image->text('你好','../simkai.ttf','20','#00000',\think\Image::THUMB_CENTER)->save($water_path);
                }
                
                return $water_path;
            } else {
	            return $info->getFilename();  //f7fc0885f2382c4dc6fbc37a012c1214.jpg
	            return $info->getSavename();  //20200212\b7ff4517d038e3d7931958824c4dc2a6.jpg
                return $info->getPathname();  //uploads\20200212\0a2fe6509f555a49bf06d25cf0916198.jpg
            }
        } else {
            // 上传失败获取错误信息
            return $file->getError();
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值