ThinkPHP5.0之文件上传
- 普通上传
// 1.获取上传的文件数据
$file = $request->file("file");
// 判断是否存在文件上传对象
if ($file) {
// 2.移动到指定目录下
// ROOT_PATH 框架应用根目录
// DS 当前系统的目录分隔符
$files = $file->move(ROOT_PATH."public".DS."uploads");
dump($files);
// 获取文件信息
dump($files->getSaveName());
// 获取文件后缀名
dump($files->getExtension());
}
- 带验证的上传
// 1.获取上传的文件信息
$file = $request->file("file");
// 2.数据验证
$res = $this->validate(['file' => $file], 'File');
// 3.判断
if (true !== $res) {
$this->error($res, '/file/index');
}
// 4.移动文件
$files = $file->move(ROOT_PATH."public".DS."uploads");
// 获取文件路径
$savename = $files->getSaveName();
// 获取文件后缀
$ext= $files->getExtension();
文件上传验证器类
<?php
namespace app\admin\validate;
use think\Validate;
class File extends Validate
{
// 验证规则
protected $rule = [
'file' => 'require|image|file',
];
// 提示信息
protected $message = [
'file.require' => '上传文件不能为空',
'file.image' => '非法图像文件',
'file.file' => '非法文件',
];
}