在ThinkPHP中,可以通过使用框架自带的 \think\facade\Request 类和 Request 实例的 file 方法来处理文件上传。具体步骤如下:
在前端页面中使用 form 表单设置 enctype 属性为 multipart/form-data 以支持文件上传。
在后端控制器方法中,调用 $file = \think\facade\Request::file('file') 获取上传文件的信息。
使用 $info = $file->validate(['ext'=>'jpg,gif,png'])->move('./uploads/') 对上传文件进行验证并移动到指定目录:
a. validate() 方法用于对文件进行格式验证,其中 ext 参数表示允许接受的文件格式。
b. move() 方法可以实现将上传文件移动到指定目录,并返回移动后的路径信息。
可以使用 $info->getSaveName() 方法获取上传文件存储的相对路径,并将路径存储到数据库中。
需要注意的是,在上传文件时要进行安全过滤、避免文件名冲突、控制文件大小等。同时也可以使用第三方扩展包如 thinkphp/filesystem 来实现更便捷的文件上传处理。