thinkphp6 图片上传和缩略水印

这篇博客介绍了如何在ThinkPHP6框架下利用Composer安装并使用图像处理类库ThinkImage,展示了一个HTML表单用于文件上传,接着是处理上传图片的路由和控制器代码,包括图片缩略和添加水印的操作。
摘要由CSDN通过智能技术生成

安装扩展

使用Composer安装ThinkPHP6的图像处理类库:

composer require topthink/think-image

html代码

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
<form action="add" method="post" enctype="multipart/form-data">
    <input type="text" name="title" id="title" placeholder="请输入标题"><br>
    <input type="text" name="name" id="name" placeholder="请输入名称"><br>
    <input type="file" name="img" ><br>
    <input type="submit" value="提交">
</form>
</body>
</html>

路由代码

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------
use think\facade\Route;

Route::get('think', function () {
    return 'hello,ThinkPHP6!';
});

Route::get('hello/:name', 'index/hello');
Route::view('for','/form');
Route::post('add','contro/add');

控制器代码

public function add(Request $request)
    {
       $data=$request->param();//接收除了图片文件的数据
       $file=$request->file('img');//专门接收图片的函数

       //文件上传
       //将图片上传到框架中,存到public下的image文件夹中
     $img=\think\facade\Filesystem::disk('public')->putFile('image',$file);

        //图片缩略水印
        $image = \think\Image::open('storage/'.$img);
        //生成随机数(就是给生成好的水印缩略图起个名字保存在框架中)
        $rand=rand(111111,999999);
        //保存路径(public>storage>image>666666.png)
        $url='storage/image/'.$rand.'.png';//将保存路径拼接起来
        // 按照原图的比例生成一个最大为80*80的缩略图并保存为$url
        $image->thumb(80, 80)->text('2001a',getcwd().'/ARLRDBD.TTF',20,'#0000cc')->save($url);//thumb()图像缩略
        //先生成一个80*80尺寸的缩略图再添加一个大小为20内容为2001a的水印保存到$url
        //getcwd()函数是找ARLRDBD.TTF这个字体文件在框架中的位置(字体文件在 C:\Windows\Fonts)
   


    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值