ThinkPHP发布安全更新版本(V6.1.0/V6.0.14),移除对think-filesystem库的依赖
发表于:2022-10-31 22:58:39浏览:1122次
10月底,ThinkPHP官方发布了V6.1.0及V6.0.14版本,本次更新为安全更新版本,主要修正了序列化漏洞问题和优化多语言判断机制,并且包含了ThinkORM的一些积累更新,推荐大家升级哦。
使用5.1版本的也可以更新到最新的V5.1.42版本。对于希望使用新版think-filesystem库的可以升级到V6.1版本.
之所以发布V6.1.0版本,主要是出于think-filesystem库的安全问题频繁,而且没法兼容更新,该版本目前并无其它架构调整,但不排除未来会引入其它新特性而提升PHP版本依赖。
主要更新:
1、删除废弃方法
2、优化多语言检测
3、修正命令行模式下的默认request
4、移除核心对think-filesystem库的依赖
ThinkORM主要更新:
1、修复 with&bind 调用多次导至前面的 hidden被替换的问题
2、改进软删除,支持动态调用
3、morphTo关联模型支持hasWhere查询
4、改进setAttr方法
5、修正多态关联模型多态类型未定义时抛出异常
温馨提示:很多小伙伴们升级到tp6.1后文件上传报错了,主要是上传模块缺少了think-filesystem库的依赖。文件上传无法使用,但是think\File 依旧有进行保留,可以使用think\File 代替进行文件操作,文件上传代码如下:
<?php
namespace app\index\controller;
use app\BaseController;
use think\File;
class Index extends BaseController
{
public function Upload($file)
{
// 获取文件基本信息
$fileInfo = pathinfo($file);
// 获取文件后缀
$extension = strtolower($file->getOriginalExtension());
// 获取文件地址和名称
$filePath = $fileInfo['dirname'] . '/' . $fileInfo['basename'];
// 文件地址转文件类
$file = new File($filePath);
// 文件转存目录(按自己喜好定义就行)
$dataPath = date('Ym');
$savePath = root_path() . 'public/storage/'.$dataPath.'/';
// 新的文件名(按自己喜好生成就行)
$fileName = $file->md5() . '.' . $extension;
// 转移临时文件到指定目录
$file->move($filePatch, $savePath.$fileName);
// 上传的业务逻辑写在这里
.......
}
/**
* 也可以使用 $file = new File('文件地址');得到文件对象
* /
}
推荐文章
- ThinkPHP6使用中间件实现后台登录验证方案
- 微信小程序如何跳转进入公众号文章的方法
- 炫酷的HTML5+CSS3实现的加载动画 loading 效果收集
- layui上传插件使用exts属性指定上传文件的后缀名,并过滤掉其他格式的文件(格式过滤)
- 勾股DEV,一款专为IT行业研发团队打造的智能化项目管理与团队协作的工具软件
- ThinkPHP5/6 查询并进行数据计算的快捷方法
- PHP8出来也已经有一段时间了 说说PHP8的新特性
- Layui的table模块导出所有数据,无需修改前后端代码
- 在linux系统对Gitee代码库生成/添加SSH公钥
- phpstudy如何切换设置不同的composer版本及PHP版本