TP5上传

来源:互联网 发布:泰格软件安装 编辑:程序博客网 时间:2024/06/06 17:28

说道上传,图片上传是最常见的了。比如商城的商品列表页,都有一堆商品提供大家看来让大家参考。有一些网站的新闻都会有缩略图让大家预览。所以为了方便需求,tp也专门做了一个上传相关的功能。

关于模板方面还是要啰嗦一下

<form action="" method="post" enctype="multipart/form-data"><input type="file"  name="image"></form>

use think\Request;这个是不能少的,否则后续工作会变得非常麻烦。

tp5的上传类是以对象作为基础运作的,然后分别用对象内的方法来执行。

// 获取表单上传文件 image可以改名,但要保证一致。$file = request()->file('image');// 移动到框架应用根目录/public/uploads/ 目录下public也可以改名,如果改成upload/asd则会自动创建两个文件夹。$info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');

这样运行的时候就可以发现图片上传进去了。
如果失败可以用$file->getError()来查看错误。

然后可以调用一下三个方法

// 输出文件名的后缀echo $info->getExtension();// 输出文件的位置以及文件名。系统会自动穿件以时间为名的文件夹,然后输出文件夹的名字和图片的名字。echo $info->getSaveName();// 单纯输出文件的名字echo $info->getFilename();

上传的东西也需要验证,大小和类型都需要监控一下的。
验证规则语句

validate(['size'=>1567118,'ext'=>'jpg,png,gif'])

size是控制文件的大小,ext是控制文件后缀名,tp5还有一个参数是type,这个是控制mime类型,有兴趣的可以百度一下,个人还是推荐用ext。

这里再重新说一下怎么和post数据一起写入数据库。
$req->post([‘image’=>文件的路径]);

然后还要生成一个缩略图。
图像处理需要用composer下载一个类库。

composer require topthink/think-image

然后打开上传的图片

$image = \think\Image::open(request()->file('image'));

然后可以执行个方法。crop为裁剪,thumb为缩略,flip为翻转。

常用的还是缩略图。

$image->thumb(150, 150,\think\Image::THUMB_FIXED)->save(ROOT_PATH . 'public/thumb/'.md5(time()).'.jpg');

其中THUMB_FIXED可以替换,共有六种。
已此图为原例:
这里写图片描述

THUMB_SCALING.
这里写图片描述
默认的也是这个方法,单刷个人不太喜欢。因为他是保证原图比例不变的情况下缩放,对后续排版可能会照成点麻烦。

THUMB_FILLED
这里写图片描述
这个会自动填充空白部分,保持缩略图大小一致。还有一些其他的方法,我就不说明了,大家看效果就明白了。

THUMB_CENTER
这里写图片描述

THUMB_NORTHWEST
这里写图片描述

THUMB_SOUTHEAST
这里写图片描述

THUMB_FIXED
这里写图片描述

最后说一下水印功能

$image->water('/logo.png')->save(ROOT_PATH . 'public/thumb/'.md5(time()).'.jpg');

效果
这里写图片描述

下面的参数可以这是水印的位置。替换方法可以参考上边的缩略图。
这里写图片描述

图片上传基本方法到此结束。

0 0
原创粉丝点击