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' => '非法文件',
];
}