一、上传一个文件
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/" } }
上传文件的目录说明
全局配置上传文件的方式,如果不满足要求,可以后面覆盖配置信息
$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']; } }