安装扩展
使用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)
}