ThinkPHP 是一款高性能的开源 PHP 开发框架,内置强大的文件上传功能。通过合理配置和代码实现,开发者可以轻松实现各种文件上传需求。本文将结合示例,深入讲解在 ThinkPHP 中如何完成文件上传。
ThinkPHP 的文件上传相关设置集中管理于配置文件 config.php 中。关键配置项如下:
// 默认上传驱动
'upload_driver' => 'Local',
// 上传文件保存路径
'upload_path' => '/path/to/upload/folder/',
// 允许上传的文件类型
'upload_allow_ext' => 'jpg,png,gif',
// 允许上传的文件大小(字节)
'upload_max_size' => 5242880,
各项参数解释:
根据项目需求,可以调整配置,比如:
'upload_path' => 'public/uploads/',
'upload_allow_ext' => 'jpg,jpeg,png',
'upload_max_size' => 5242880,
需要在前端页面准备一个支持文件上传的表单,示例如下:
<form method="POST" enctype="multipart/form-data" action="{:url('upload')}">
<input type="file" name="file" />
<button type="submit">上传文件</button>
</form>
其中 enctype="multipart/form-data" 是文件上传表单必需的属性,确保数据以二进制格式传输。
在控制器中编写文件上传处理方法,如下示例:
namespace app\index\controller;
use think\Controller;
use think\facade\Request;
class Upload extends Controller
{
public function upload()
{
$file = Request::file('file');
// 验证文件大小和类型并移动
$result = $file->validate(['size' => 5242880, 'ext' => 'jpg,jpeg,png'])->move('public/uploads/');
if ($result) {
// 上传成功
echo '文件上传成功:' . $result->getSaveName();
} else {
// 上传失败
echo '文件上传失败:' . $file->getError();
}
}
}
以上代码先获取上传文件,进行大小和类型校验,成功后将文件保存到指定目录,并返回结果。
通过合理配置和简单代码,在 ThinkPHP 框架中实现文件上传功能非常便捷。本文介绍了配置文件设置、前端表单编写以及后台上传处理完整流程,帮助开发者快速掌握上传开发要点。