如何实现ThinkPHP6中的文件上传功能

2023年 8月 5日 48.6k 0

随着互联网的不断发展,越来越多的网站需要实现文件上传功能。在ThinkPHP6中,实现文件上传功能也变得非常简单。今天我们就来介绍一下如何在ThinkPHP6中实现文件上传功能。

一、配置文件上传参数

在开始实现文件上传功能之前,首先需要在ThinkPHP6的配置文件中设置文件上传的参数。找到项目的配置文件config/app.php,然后在params数组中添加以下代码:

'upload' => [
'maxSize' => 1024 * 1024 * 10, //文件上传的最大大小
'exts' => ['jpg', 'gif', 'png', 'jpeg'], //允许上传的文件后缀
'rootPath' => app()->getRootPath() . 'public/uploads/', //文件上传的根目录
'savePath' => '', //文件保存的子目录
'subName' => ['date', 'Ymd'], //子目录名称的命名规则
],

登录后复制

这里我们设置了文件上传的最大大小为10MB,允许上传的文件后缀为jpg、gif、png、jpeg四种格式,文件上传的根目录为public/uploads/,同时设置了子目录名称的命名规则为按日期(年月日)来命名。

二、实现文件上传功能

在配置好文件上传参数之后,就可以开始实现文件上传功能了。在控制器中编写以下代码:

public function upload()
{
$file = request()->file('image');
if ($file) {
$info = $file->validate(['ext' => 'jpg,png,gif,jpeg'])->move(config('upload.rootPath'));
if ($info) {
$data = [
'code' => 0,
'msg' => '上传成功',
'url' => config('upload.rootPath') . $info->getSaveName(),
];
} else {
$data = [
'code' => 1,
'msg' => $file->getError(),
'url' => '',
];
}
} else {
$data = [
'code' => 1,
'msg' => '请选择要上传的文件',
'url' => '',
];
}

return json($data);
}

登录后复制

这里我们首先通过request()->file('image')方法获取上传的文件,判断文件是否存在;接着使用validate()方法对上传的文件后缀进行验证,确保用户上传的文件格式正确;最后使用move()方法进行文件上传,并返回上传成功或上传失败的结果。

三、页面实现

最后,我们需要在页面上实现文件上传功能,代码如下:

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论