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

这篇具有很好参考价值的文章主要介绍了ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem‘ not found 错误的解决方案。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem’ not found 错误,真够郁闷的。
class 'think\facade\filesystem' not found,ThinkPHP6,PHP,后端,php
那么,需要把之前的代码做点改动,之前的代码如下:


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);

    }

接口返回:
class 'think\facade\filesystem' not found,ThinkPHP6,PHP,后端,php

接下来将上传部分做个更改,来适配无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接口返回

class 'think\facade\filesystem' not found,ThinkPHP6,PHP,后端,php

OK,完美解决!

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

ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem‘ not found 错误的另一种更简单的解决方案文章来源地址https://www.toymoban.com/news/detail-632161.html

到了这里,关于ThinkPHP6.0升级到6.1之后,文件上传报 Class ‘think\facade\Filesystem‘ not found 错误的解决方案的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【ThinkPHP6系列学习-1】下载并部署ThinkPHP6

    在指定目录(www目录)下打开cmd,使用composer下载thinkphp6,命令后面的thinkphp6就是下载的目录名,可以随意修改。 下载后,查看目录结构,tp6的目录结构和tp5不同,默认是单应用(只有一个模块),如果需要多应用,需要开启多应用模式,后面文章再讲。 主要用到的目录有

    2024年02月05日
    浏览(59)
  • thinkphp6 入门教程合集(更新中) thinkphp6 入门(1)--安装、路由规则、多应用模式

    thinkphp6 入门(1)--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(2)--视图、渲染html页面、赋值_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(3)--获取GET、POST请求的参数值_thinkphp获取get传值_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(

    2024年02月09日
    浏览(60)
  • class文件中,常量池之后的相关数据解析!【class二进制文件分析】

    前言:前段时间读《深入java虚拟机》介绍到class文件的时候,由于理论知识较多,人总感觉疲惫不堪,就泛泛阅读了一下。在工作中使用起来知识点知道,但是总是需要查阅各种资料。今天有时间,继续整理常量池后面的相关知识。 class文件中,我们可以通过背或记也好,或

    2024年02月07日
    浏览(45)
  • thinkphp6和thinkphp5有什么区别

    Thinkphp6.0完全开发手册 采用PHP7强类型(严格模式) tp5 环境要求PHP = 5.4.0 ThinkPHP6.0的环境要求 PHP = 7.2.5 6.0版本开始,必须通过Composer方式安装和更新,所以你无法通过Git下载安装。 支持更多的PSR规范 V6.0.10版本开始 支持 psr7 response 多应用支持 tp5默认使用多应用模式部署 tp6 安

    2024年02月06日
    浏览(57)
  • thinkPHP6接入workman

    上篇介绍了workman实现websocket功能(链接:https://blog.csdn.net/weixin_38155824/article/details/128952037) 后传:解决workman部署到Linux环境无法启动和连接的问题(https://blog.csdn.net/weixin_38155824/article/details/129004050) 这篇就介绍如何在thinkPHP6项目中接入workman。 查看TP6手册:命令行=自定义命

    2024年02月15日
    浏览(73)
  • ThinkPHP6中使用GatewayWorker

    首先是先安装 下载demo 服务器开通TCP端口 8282 、 1238 将 ApplicationsYourApp 目录随便放ThinkPHP6的哪个位置,我这里放在了 appgatewayws 目录中 配置 composer.json 保存后执行 composer dumpautoload 更新 将 Events.php 、 start_businessworker.php 、 start_gateway.php 和 start_register.php 文件中的 require_once

    2024年02月22日
    浏览(44)
  • ThinkPHP6.0 链式SQL语句

    查询单个数据 查询结果集(查询结果返回多条数据的意思) ​ 查询一个字段 ​ 查询一列 添加数据 修改数据 删除数据 根据主键删除 ​ 条件删除 ​ 查询数据 格式 where(\\\'字段名\\\',\\\'查询表达式\\\',\\\'查询条件\\\'); 模糊查询 区间查询 IN查询 Not Null Null 链式操作示例 field操作(输出选择

    2024年02月11日
    浏览(59)
  • Thinkphp6使用RabbitMQ消息队列

    Thinkphp6连接使用RabbitMQ(不止tp6,其他框架对应改下也一样),使用Docker部署RabbitMQ,在上一篇已经讲了-传送门-。 开始前先进入RabbitMQ的web管理界面,选择Queues菜单,点击底部的Add a new queue,新建一个test的队列。 安装thinkphp6框架 安装workerman扩展 安装rabbitmq扩展 生产者 在a

    2023年04月23日
    浏览(76)
  • thinkphp6 动态开启debug模式

    1、找到config/app.php   2、自定义开启debug参数名称:示例参数为debug,可以根据自己项目情况自定义  3、必须同时设置App::debug 和 Env::set(\\\'APP_DEBUG\\\')

    2024年02月07日
    浏览(47)
  • Thinkphp6 如何 生成二维码

    来自:https://www.is5.me/notes/php/633.html

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包