您的当前位置:首页>全部文章>文章详情

ThinkPHP发布安全更新版本(V6.1.0/V6.0.14),移除对think-filesystem库的依赖

发表于:2022-10-31 22:58:39浏览:1122次TAG: #ThinkPHP #PHP

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('文件地址');得到文件对象
    * /
}