配置文件 config/filesystem.php
<?php return [ // 默认磁盘 'default' => env('filesystem.driver', 'local'), // 磁盘列表 'disks' => [ 'local' => [ 'type' => 'local', 'root' => app()->getRuntimePath() . 'storage', ], 'public' => [ // 磁盘类型 'type' => 'local', // 磁盘路径 'root' => app()->getRootPath() . 'public/storage', // 磁盘路径对应的外部URL路径 'url' => '/storage', // 可见性 'visibility' => 'public', ], // 更多的磁盘配置信息 ], ];
控制器 app/controller/Index.php
<?php namespace app\controller; class Index { public function index() { return view('index'); } public function upload(){ // 获取表单上传文件 例如上传了001.jpg $file = request()->file('image'); // 上传到本地服务器 $savename = \think\facade\Filesystem::putFile( 'topic', $file); //$savename = \think\facade\Filesystem::disk('public')->putFile( 'topic', $file); echo $savename; } }
视图 app/view/index/index.html
<form action="/index/upload" enctype="multipart/form-data" method="post"> <input type="file" name="image" /> <br> <input type="submit" value="上传" /> </form>
测试(上传图片,查看runtime/storage下是否生成对应文件)
http://127.0.0.1:8000/index
视图
<form action="/index/index/upload" enctype="multipart/form-data" method="post"> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="file" name="image[]" /> <br> <input type="submit" value="上传" /> </form>
控制器
public function upload(){ // 获取表单上传文件 $files = request()->file('image'); $savename = []; foreach($files as $file){ $savename[] = \think\facade\Filesystem::putFile( 'topic', $file); } }
验证
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(); } }
验证参数
验证参数 说明 fileSize 上传文件的最大字节 fileExt 文件后缀,多个用逗号分割或者数组 fileMime 文件MIME类型,多个用逗号分割或者数组 image 验证图像文件的尺寸和类型