本文主要和大家分享php3.2实现多文件上传的实例,希望能帮助到大家。
public function upload(){ $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = './Uploads/'; // 设置附件上传根目录 $upload->savePath = 'slider/'; // 设置附件上传(子)目录 // 上传单个文件 $info = $upload->uploadOne($_FILES['files']); if(!$info) {// 上传错误提示错误信息 $this->error($upload->getError()); }else{// 上传成功 获取上传文件信息 $url= $info['savepath'].$info['savename']; } return $url; }
这个是单文件上传的时候源码,其中的 $info = $upload->uploadOne($_FILES['files']);这个位置限制住了文件上传是单文件
还有就是前端的input选择的问题
public function upload(){ $upload = new \Think\Upload();// 实例化上传类 $upload->maxSize = 3145728 ;// 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 $upload->rootPath = './Uploads/'; // 设置附件上传根目录 $upload->savePath = 'last/'; // 设置附件上传(子)目录 // 上传多个文件 $info = $upload->upload(); if(!$info) {// 上传错误提示错误信息 $this->error($upload->getError()); }else{// 上传成功 获取上传文件信息 foreach($info as $file){ $url .= $file['savepath'].$file['savename'].','; } } return $url; }
这个是多文件上传的方法主要的区别在于$info = $upload->upload();这个部位
以及$url .= $file['savepath'].$file['savename'].',';这部分的限制
前端的单文件,多文件区别也是很大的
这个是多文件的区别
<input type="file" name="files[]" multiple="">
官方的解释
如果需要使用多个文件上传,只需要修改表单,把
<input type='file' name='photo'>
改为
<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[]'>
两种方式的多附件上传系统的文件上传类都可以自动识别。
多文件上传的时候
还有一个问题是区分出来1,2,3.。。。n个input
//获取商品图片路径和详情图片路径 $str = $this->upload(); $count1 = count($_FILES['files1']['name']);//获取商品图片上传个数 $arr = explode(',',$str); $slider = ''; $detail = ''; foreach ($arr as $k=>$v){ if($k+1<$count1){ $slider .= $v.','; }else{ $detail .= $v.','; } } $slider = rtrim($slider,','); $detail = rtrim($detail,',');
相关推荐:
Atas ialah kandungan terperinci php3.2实现多文件上传. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!