thinkphp 上传文件学习

一、上传一个文件

1、在html网页代码

<form action="__URL__/upload" enctype="multipart/form-data" method="post">
    <input type="text" name="name" />
    <input type="file" name="photo" />
    <input type="submit" value="提交">
</form>

 

2、对应的PHP文件处理

public function upload() {
	// 实例化上传类
    $upload = new \Think\Upload(); 
	//上传的文件大小限制 (0-不做限制),单位是B
    $upload->maxSize = 3145728; 
	// 设置附件上传类型
    $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); 
    // 设置附件上传根目录,
	$upload->rootPath = './Uploads/'; 
	// 设置附件上传(子)目录
    $upload->savePath  = './myupload/'; 
	//自定义上传文件的命名规则
    $upload->saveName =  time().'huangbiao';
    // 上传文件
	$info   =   $upload->upload();
	dump($info).'<p>';
	if(!$info) {// 上传错误提示错误信息
		$this->error($upload->getError());
	}else{// 上传成功 获取上传文件信息
		foreach($info as $file){
			echo $file['savepath'].$file['savename'];
		}
	}
} 

 

打印结果

dump($upload->upload())
array(1) {
  [0] => array(9) {
    ["key"] => string(5) "photo"
    ["name"] => string(27) "app_server_目录说明.png"
    ["type"] => string(9) "image/png"
    ["size"] => int(60793)
    ["ext"] => string(3) "png"
    ["md5"] => string(32) "e881f8306bc2c4259fe9da1207c03297"
    ["sha1"] => string(40) "b32b3b81699bbe30982ec4760ccfa9fcd2d26b97"
    ["savename"] => string(17) "568909120f1d2.png"
    ["savepath"] => string(22) "./myupload/2016-01-03/"
  }
}

 

上传文件的目录说明

thinkphp 上传文件学习_第1张图片

 

thinkphp 上传文件学习_第2张图片

 

全局配置上传文件的方式,如果不满足要求,可以后面覆盖配置信息

$config = array(
    'maxSize'    =>    3145728,
    'rootPath'   =>    './Uploads/',
    'savePath'   =>    '',
    'saveName'   =>    array('uniqid',''),
    'exts'       =>    array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub'    =>    true,
    'subName'    =>    array('date','Ymd'),
);
$upload = new \Think\Upload($config);// 实例化上传类

 

二、上传多个文件

1、上传多个文件的HTML

<input type='file'  name='photo1'>
<input type='file'  name='photo2'>
<input type='file'  name='photo3'>
或者
<input type='file'  name='photo[]'>
<input type='file'  name='photo[]'>
<input type='file'  name='photo[]'>

 

2、上传单个文件的解决办法

public function upload(){
// 实例化上传类
    $upload = new \Think\Upload();
	// 设置附件上传大小
    $upload->maxSize   =     3145728 ;
	// 设置附件上传类型
    $upload->exts      =     array('jpg', 'gif', 'png', 'jpeg');
	// 设置附件上传根目录
    $upload->rootPath  =      './Uploads/'; 
    // 上传单个文件 
    $info   =   $upload->uploadOne($_FILES['photo1']);
    if(!$info) {// 上传错误提示错误信息
        $this->error($upload->getError());
    }else{// 上传成功 获取上传文件信息
         echo $info['savepath'].$info['savename'];
    }
}

 

 

 

 

 

你可能感兴趣的:(thinkphp 上传文件学习)