thinkphp8之文件上传

  • 文件上传安装

命令:composer require topthink/think-filesystem

二.上传代码、接收代码

<form action="/index/index/index" enctype="multipart/form-data" method="post">

<input type="file" name="image" /> <br>

<input type="submit" value="上传" />

</form>

$file = request()->file('image');

接收到$file是一个对象,多图片是对象里面是多个图片数组

object(think\file\UploadedFile)#66 (9) {

  ["test":"think\file\UploadedFile":private]=>

  bool(false)

  ["originalName":"think\file\UploadedFile":private]=>

  string(35) "bcc2c9150d753eda616e11c090726a1.png"

  ["mimeType":"think\file\UploadedFile":private]=>

  string(9) "image/png"

  ["error":"think\file\UploadedFile":private]=>

  int(0)

  ["hash":protected]=>

  array(0) {

  }

  ["hashName":protected]=>

  NULL

  ["extension":protected]=>

  NULL

  ["pathName":"SplFileInfo":private]=>

  string(41) "C:\Users\j\AppData\Local\Temp\php21D4.tmp"

  ["fileName":"SplFileInfo":private]=>

  string(11) "php21D4.tmp"

}

三.图片上传
$savename = \think\facade\Filesystem::disk('public')->putFile( 'topic', $file);

返回topic/20250625/fc51ff39bab056af7b1e8e33203243ba.png
路径是在public/storage/topic/20250625下面

四.上传配置
上传路径的配置config\filesystem.php里面,更改root和url属性可以更改存储的位置

      'public' => [

            // 磁盘类型

            'type'       => 'local',

            // 磁盘路径

            'root'       => app()->getRootPath() . 'public/storage',

            // 磁盘路径对应的外部URL路径

            'url'        => '/storage',

            // 可见性

            'visibility' => 'public',

        ],

例如:上传代码修改为$savename = \think\facade\Filesystem::disk('public')->putFile('sss', $file);
配置修改为: 'public' => [

            // 磁盘类型

            'type'       => 'local',

            // 磁盘路径

            'root'       => app()->getRootPath() . 'public/static',

            // 磁盘路径对应的外部URL路径

            'url'        => '/static',

            // 可见性

            'visibility' => 'public',

        ],
就会把图片上传到public/static/sss下面

  • \think\facade\Filesystem对象的用法
    位置:vendor/topthink/think-filesystem/src/Filesystem.php
    例如:disk方法加载配置里面的类型、getConfig方法获取配置等
  • 上传文件的验证

位置:vendor/topthink/think-validate/src/Validate.php
例如:方法fileSize验证文件大小(字节数),方法image验证文件宽高和类型(可以是数组或者逗号分割)等
使用示例: validate(['image'=>'fileSize:10240|fileExt:jpg|image:200,200,jpg'])

            ->check($files);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值