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');
效果
下面的参数可以这是水印的位置。替换方法可以参考上边的缩略图。
图片上传基本方法到此结束。
- TP5上传
- 关于tp5上传
- tp5添加 上传图片
- TP5之图片上传
- tp5 视频上传及展示
- TP5中文名上传乱码,解决办法
- tp5简单的图片上传
- TP5适用bootstrap多图上传插件
- 基于tp5文件上传到七牛云的插件
- tp5上传图片并生成缩略图
- TP5
- tp5简单的多图片上传并预览demo
- thinkphp5 , tp5 导入 Excel ,phpExcel 插件使用,文件上传
- tp5 删除上传的原文件出现权限问题
- tp5异步上传图片到七牛云,就是那么简单
- TP5 多个文件上传只取到一个文件名的解决办法
- tp5异步上传图片到七牛云,就是那么简单
- TP5上传图片Call to a member function move() on null
- android各个版本的新特性
- Android6.0运行时权限的封装(参考郭神的视频总结的代码)
- synchronized浅析
- 零基础Vue入门学习记录(1)
- JAVA文件上传工具
- TP5上传
- 1004. Counting Leaves (30)
- 互联网开发--web文件上传原理
- Python 中的哪些库让你相见恨晚
- 自定义View同时显示3个Fragment
- 在C/C++层面讲解析好的图片/视频绘制到Surface上面显示
- Vue.js UI框架
- 安卓Android控件ListView获取item中EditText值
- 防止表单重复提交,PHP生成token并自动更新