文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem‘ not found 错误的解决方案

2023-09-01 16:31

关注

ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem’ not found 错误,真够郁闷的。
在这里插入图片描述
那么,需要把之前的代码做点改动,之前的代码如下:

use think\facade\Filesystem;public function index(){        $uid = $this->request->middleware('uid');        $files = request()->file('file');        $res = [];// 存储上传失败的信息        $res['success'] = [];        $res['error'] = [];        foreach($files as $file){            $ext = $file->getOriginalExtension();            //不同文件,储存不同的文件夹            $folder = config('filesystem.disks.folder') . '/api/' . $ext; //存文件目录            if(!file_exists($folder))mkdir($folder, 0700,TRUE);//如果文件夹不存在,则创建            $savename = Filesystem::disk('public')->putFile($folder,$file);$getOriginalName = $file->getOriginalName();$getSize = $file->getSize();            if (!$savename) {                $res['error'][] =  $getOriginalName;            }else{                $savename = '/' . str_replace("\\","/",$savename);                $uploadRes = (new ApiUploadFiles())->create([                    'uid'=>$uid,                    'file_name'=>$getOriginalName,                    'file_size'=>$getSize,                    'extension'=>$ext,                    'url'=>$savename,                ]);                if($uploadRes){                    $res['success'][] = [                        'id'=>$uploadRes->id,                        'name'=>$getOriginalName,                        'path'=>Request::domain().'/'.$savename                    ];                }else{                    $res['error'][] =  ['name'=>$getOriginalName];                }            }        }        return show($res,200);    }

接口返回:
在这里插入图片描述

接下来将上传部分做个更改,来适配无Filesystem扩展的状态

use think\File;public function index(){        $uid = $this->request->middleware('uid');        $files = request()->file('file');        $res = [];// 存储上传失败的信息        $res['success'] = [];        $res['error'] = [];        foreach($files as $file){            $ext = $file->getOriginalExtension();            $fileInfo = pathinfo($file);            // 获取文件地址和名称            $filePath = $fileInfo['dirname'] . '/' . $fileInfo['basename'];            // 文件地址转文件类            $fileUp = new File($filePath);            //不同文件,储存不同的文件夹            $folder = config('filesystem.disks.folder') . '/api/' . $ext.'/'.fdate('','Ymd'); //存文件目录            if(!file_exists($folder))mkdir($folder, 0700,TRUE);//如果文件夹不存在,则创建            $savename = $fileUp->md5() . '.' . $ext;            $size = $file->getSize();            $getOriginalName = $file->getOriginalName();            $fileUp->move($folder, $folder.'/'.$savename);            if (!$savename) {                $res['error'][] =  $getOriginalName;            }else{                $savename = '/' . str_replace("\\","/",$folder.'/'.$savename);                $uploadRes = (new ApiUploadFiles())->create([                    'uid'=>$uid,                    'file_name'=>$getOriginalName,                    'file_size'=>$size,                    'extension'=>$ext,                    'url'=>$savename,                ]);                if($uploadRes){                    $res['success'][] = [                        'id'=>$uploadRes->id,                        'name'=>$getOriginalName,                        'path'=>Request::domain().$savename                    ];                }else{                    $res['error'][] =  ['name'=>$getOriginalName];                }            }        }        return show($res,200);    }

api接口返回

在这里插入图片描述

OK,完美解决!

另一种更简单的处理方式:

ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem‘ not found 错误的另一种更简单的解决方案

来源地址:https://blog.csdn.net/xzszxiong/article/details/127825113

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯