在ThinkPHP框架中,可以使用File
类来进行文件上传和下载。
文件上传:
首先需要在表单中添加一个input
标签,设置type
属性为file
,并设置name
属性为file
,如下所示:
<form action="{:url('upload')}" method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit" value="上传">
</form>
在控制器中,使用request
对象的file
方法获取上传的文件,然后调用move
方法将文件移动到指定的目录中,如下所示:
public function upload()
{
$file = request()->file('file');
$info = $file->move('./uploads');
if ($info) {
echo '文件上传成功:' . $info->getFilename();
} else {
echo $file->getError();
}
}
其中,move
方法的参数为文件上传后保存的目录,可以根据实际需求进行修改。
文件下载:
在控制器中,可以使用download
方法将文件下载到本地,如下所示:
public function download()
{
$filename = '文件路径';
return download($filename);
}
其中,$filename
为要下载的文件路径。
需要注意的是,下载文件的方法需要在config/mime.php
中添加对应的文件类型和MIME类型的映射关系,如下所示:
return [
// ...
'pdf' => 'application/pdf',
'doc' => 'application/msword',
'xls' => 'application/vnd.ms-excel',
'ppt' => 'application/vnd.ms-powerpoint',
'zip' => 'application/zip',
'rar' => 'application/x-rar-compressed',
// ...
];
以上就是在ThinkPHP框架中进行文件上传和下载的方法。