在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'];
}
}
}
