在Thinkphp中可以使用 \Think\Upload() 类实现上传功能。下面是具体文件上传步骤:
单文件上传
1.首先在模板中创建一个表单:
<form action="__CONTROLLER__/doAdd" method="POST" enctype="multipart/form-data"> <input type="file" name="pic"> <input type="submit" value="上传"> </form>
注意:一定要定义 enctype="multipart/form-data"
2.在控制器中创建方法:
public function pic(){ //前端页面展示FORM表单 $this->display(); } public function doAdd(){ //表单提交的方法 $this->upload($_FILES); } private function upload($file){ //表单提交的文件处理 $config = array( "maxSize" => 10240000, "exts" => array('jpg', 'gif', 'png', 'jpeg'), "rootPath" => "./Public/Upload/", "savaPath" => "", ); $upload = new \Think\Upload($config); $info = $upload->uploadOne($file['pic']); if(!$info){ $this->error($upload->getError()); }else{ dump($info); } }
注意:\Thinkp\Upload类具体参数下面详细说明。
多文件上传:与单文件有两处不同
表单提交<input type="file" name="pic[]" multiple>
上传方法 $info = $upload->upload();
1.创建表单
<form action="__CONTROLLER__/doAdd" method="POST" enctype="multipart/form-data"> <input type="file" name="pic[]" multiple> <input type="submit" value="上传"> </form>
2.控制器中创建方法
public function pic(){ //前端页面展示FORM表单 $this->display(); } public function doAdd(){ //表单提交的方法 $this->upload($_FILES); } private function upload($file){ //表单提交的文件处理 $config = array( "maxSize" => 10240000, "exts" => array('jpg', 'gif', 'png', 'jpeg'), "rootPath" => "./Public/Upload/", "savaPath" => "", ); $upload = new \Think\Upload($config); $info = $upload->upload(); //uploade()方法自动获取$_FILES if(!$info){ $this->error($upload->getError()); }else{ foreach($info as $value){ //info是个三维数组,可以遍历每张图片的保存信息 echo $value['savapath'].$value['savaname']; } } }