返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >ThinkPHP 文件上传 fileSystem 扩展的使用
  • 862
分享到

ThinkPHP 文件上传 fileSystem 扩展的使用

ThinkPHPphp 2023-09-09 17:09:25 862人浏览 薄情痞子
摘要

ThinkPHP 文件上传 ThinkPHP 文件上传 扩展 filesystem一、安装 FileSystem 扩展二、认识 filesystem 配置文件 config/filesyste

ThinkPHP 文件上传

Thinkphp 文件上传 扩展 filesystem

ThinkPHP 为我们 提供了 filesystem扩展用于上传文件,要使用 filesystem 扩展首先要使用composer进行安装,然后安装完毕后,配置相应的上传规则即可。

一、安装 FileSystem 扩展

composer require topthink/think-filesystem

二、认识 filesystem 配置文件 config/filesystem.php

文件上传的相关配置在应用的config目录下的filesystem.php中进行配置,下面是默认的配置文件

return [    // 默认磁盘    'default' => 'local',    // 磁盘列表    'disks'   => [        'local'  => [            'type' => 'local',            'root' => app()->getRuntimePath() . 'storage',        ],        'public' => [            // 磁盘类型            'type'       => 'local',            // 磁盘路径            'root'       => app()->getRootPath() . 'public/storage',            // 磁盘路径对应的外部URL路径            'url'        => '/storage',            // 可见性            'visibility' => 'public',        ],        // 更多的磁盘配置信息    ],];

在这里插入图片描述

默认的文件上传存储到本地的话,(单应用模式) 存放的位置是当前运行时目录下的storage目录下面生成以当前日期为子目录,以微秒时间的md5编码为文件名的文件
如果是多应用模式下的话,那么存放的位置就是项目根目录下的 runtime 目录中的 应用名称/storage目录中(其实就是多加了一层应用名称以示区分)。

在这里插入图片描述

其中的配置规则也可以自行扩充。

三、上传验证(涉及到验证器的知识点)

文件上传验证属性的说明:

验证参数说明
fileSize上传文件的最大字节
fileExt文件后缀,多个用逗号分割或者数组
fileMime文件MIME类型,多个用逗号分割或者数组
image验证图像文件的尺寸和类型

验证图片后缀是否正确,并且返回JSON字符串

public function upload(){    $files = request()->file();    try {        // 校验图片后缀是否为jpg或者png,其他规则可以是哟 | 分隔去配置        validate(['image'=>'fileExt:jpg,png'])            ->check($files);        $savename = [];        foreach($files as $file) {            $savename[] = \think\facade\Filesystem::disk('public')->putFile( 'index', $file);        }        //dump($savename[0]);        return json($savename[0]); // 返回图片上传路径    } catch (\think\exception\ValidateException $e) {        echo $e->getMessage();    }}

官方文档提供的一个验证示例:

public function upload(){    // 获取表单上传文件    $files = request()->file();    try {        validate(['image'=>'fileSize:10240|fileExt:jpg|image:200,200,jpg'])            ->check($files);        $savename = [];        foreach($files as $file) {            $savename[] = \think\facade\Filesystem::putFile( 'topic', $file);        }    } catch (\think\exception\ValidateException $e) {        echo $e->getMessage();    }}

四、文件上传demo

表单代码:

<fORM action="/index/upload" enctype="multipart/form-data" method="post">  <input type="file" name="image" /> <br>   <input type="submit" value="上传" /> form>

控制器代码:

// 这里为了简单就没使用文件上传验证,但是实际开发中是必须配置的public function upload(){  // 获取表单上传文件  $file = request()->file('image');  // 上传到本地服务器  public/storage/index(应用名称) 目录下  $savename = \think\facade\Filesystem::disk('public')->putFile( 'index', $file);  // 通常文件上传完毕后,前后端分离的话是需要给前端返回一个json字符串,内容是文件上传的url路径  return json($savename);}

在这里插入图片描述

在这里插入图片描述


来源地址:https://blog.csdn.net/m0_63622279/article/details/132568600

--结束END--

本文标题: ThinkPHP 文件上传 fileSystem 扩展的使用

本文链接: https://lsjlt.com/news/401734.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ThinkPHP 文件上传 fileSystem 扩展的使用
    ThinkPHP 文件上传 ThinkPHP 文件上传 扩展 filesystem一、安装 FileSystem 扩展二、认识 filesystem 配置文件 config/filesyste...
    99+
    2023-09-09
    ThinkPHP php
  • PHP如何安装FastDFS扩展并测试上传文件
    小编给大家分享一下PHP如何安装FastDFS扩展并测试上传文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!PHP安装Fast...
    99+
    2024-04-02
  • Thinkphp使用composer安装扩展包教程
    一、删除php禁用函数putenv  1、可以在宝塔面板的PHP管理 →  禁用函数 →  删除putenv  2、也可以在php的配置文件php.ini里搜索disable_functions,然后删除字符串数组里的putenv 注意:...
    99+
    2023-09-08
    composer php 服务器
  • thinkphp中如何实现文件上传功能
    这篇文章主要介绍“thinkphp中如何实现文件上传功能”,在日常操作中,相信很多人在thinkphp中如何实现文件上传功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”thinkphp中如何实现文件上传功能...
    99+
    2023-07-05
  • 在linux上如何使用交换文件扩展交换空间
    这篇文章给大家分享的是有关在linux上如何使用交换文件扩展交换空间的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换...
    99+
    2023-06-16
  • 使用 Iisext.vbs 列出 Web 服务扩展文件
    这篇文章主要介绍“使用 Iisext.vbs 列出 Web 服务扩展文件”,在日常操作中,相信很多人在使用 Iisext.vbs 列出 Web 服务扩展文件问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”使用 ...
    99+
    2023-06-08
  • Python使用FTP上传文件
    Python使用FTP上传文件 本文主要介绍如何使用Python通过FTP上传文件。 FTP简介 FTP即文件传输协议(File Transfer Protocol),是用于在网络上进行文件传输的一种...
    99+
    2023-09-07
    python 服务器 网络
  • 怎么在Linux系统上使用交换文件扩展swap空间
    本篇内容主要讲解“怎么在Linux系统上使用交换文件扩展swap空间”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么在Linux系统上使用交换文件扩展swap空间”吧!想像一种情景,当我们的L...
    99+
    2023-06-12
  • PHP 实现网页文件上传 及 文件展示
    目录 效果展示 部分内容及实现代码 文件上传 发送数据到当前页面  并使用php处理  当提交空白表单时 需要用js提前处理 不进行提交 提交过后判断文件格式是否接受 展示文件  获取文件地址  开始展示文件 美化或优化 完整代码 效果...
    99+
    2023-09-02
    php 开发语言 html javascript css
  • android 获取文件的扩展名和去掉文件扩展名的小例子
    代码如下:       public static String getExtensionName(String filen...
    99+
    2022-06-06
    扩展 扩展名 Android
  • PHP上传文件的使用方法
    本篇内容介绍了“PHP上传文件的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!PHP 4.0.3之后PHP又出了一个新函数move_...
    99+
    2023-06-17
  • 如何使用 Golang 扩展文件读写功能?
    如何扩展 go 文件读写功能:使用 io 包进行通用输入输出操作,例如从文件读取到内存缓冲区。使用 os 包进行操作系统文件系统操作,例如创建、删除和重命名文件。结合使用这些包进行复杂的...
    99+
    2024-05-16
    golang 文件读写 标准库
  • css文件用的是什么扩展名
    这篇文章主要介绍了css文件用的是什么扩展名,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。css样式表文件的扩展名是“.css”,css样式表文件是用于装CSS代码的文本文件...
    99+
    2023-06-06
  • 如何使用Iisext.vbs启用Web服务扩展文件
    本篇内容介绍了“如何使用Iisext.vbs启用Web服务扩展文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!应用到: Windows S...
    99+
    2023-06-08
  • 使用AJAX实现上传文件
    本文实例为大家分享了使用AJAX实现上传文件的具体代码,供大家参考,具体内容如下 需求: 在前端页面选择文件上传到服务器的指定位置 前端代码 <form id="upl...
    99+
    2024-04-02
  • 如何使用Servlet上传文件
    如何使用Servlet上传文件?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、Servlet实现文件上传,需要添加第三方提供的jar包下载地址:1) commons-fi...
    99+
    2023-05-31
    servlet 文件上传
  • 怎么使用GitHub上传文件
    这篇文章主要介绍了怎么使用GitHub上传文件的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇怎么使用GitHub上传文件文章都会有所收获,下面我们一起来看看吧。一、注册GitHub账号首先,在GitHub上传文...
    99+
    2023-07-05
  • PyQt5编程扩展之资源文件的使用教程
    目录本例运行效果: 设计Qt窗体 建立项目放一个Group Box放三个Label放一个Horizontal Slider放两个Line Edit层次结构&nbs...
    99+
    2023-03-03
    pyqt5 资源文件 pycharm pyqt5
  • MyBatis扩展插件怎么使用
    MyBatis扩展插件可以用来扩展MyBatis的功能,例如自定义类型处理器、拦截器、生成器等。使用MyBatis扩展插件的步骤如下...
    99+
    2024-03-07
    MyBatis
  • php文件上传插件如何使用
    要使用PHP文件上传插件,您需要按照以下步骤进行操作:1. 下载插件:首先,您需要从互联网上下载一个PHP文件上传插件。一些常见的插...
    99+
    2023-10-18
    php
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作