thinkPHP3.2.3文件上传类多张图片上传怎么只有第一张图片被上传

首先我们来看看html的前端表单代码↓↓↓:<form action="{:U('admin/content/content')}" name="myform" id="myform" method="post" enctype="multipart/form-data"><input type="file" name="banner_index[]" size="80" class="inpMain"/><input type="file" name="banner_index[]" size="80" class="inpMain"/><input type="file" name="banner_index[]" size="80" class="inpMain"/></form>然后我们来看看后台这个upload函数↓↓: $upload = new \Think\Upload(); // 实例化上传类 $upload->maxSize = 2000000 ; // 设置附件上传大小 $upload->exts = array('jpg', 'gif', 'png', 'jpeg'); // 设置附件上传类型 $upload->rootPath = './Uploads/'; // 设置附件上传根目录 $upload->savePath = date('Y').'/'.date('m').'/'.date('d').'/'; // 设置附件上传(子)目录 $upload->subName = array('date', 'H'); //子目录创建方式,[0]-函数名,[1]-参数,多个参数使用数组 $upload->saveName = md5(uniqid()); //上传文件的保存规则 // 上传文件 $info = $upload->upload(array($_FILES['banner_index'])); if(!$info) { // 上传错误提示错误信息 $this->error($upload->getError(),U("Admin/content/content"),3); }else{ // 上传成功 获取上传文件信息 foreach($info as $file){ echo $file['savepath'].$file['savename']; } } echo "<pre>"; var_dump($info); var_dump($_POST); var_dump($_FILES); die;然后呢,我就上传三张图片点击“提交”按钮,结果如下↓↓↓:$info数组:array (size=1) 0 => array (size=9) 'key' => int 0 'name' => string '3.jpg' (length=5) 'type' => string 'image/jpeg' (length=10) 'size' => int 135985 'ext' => string 'jpg' (length=3) 'md5' => string '11bbeafcbed015be04c9ab3c7b9281f9' (length=32) 'sha1' => string '88f2a795d105f5ad8f8ddc9ffada22ecbcd44056' (length=40) 'savename' => string 'b74dee38cd479fd63323918a5f5c33ed.jpg' (length=36) 'savepath' => string '2016/12/06/11/' (length=14)图片为$_FILES数组!很神奇啊,我明明上传了三张图,但是这里返回的,只是成功上传了一张图而已,也就是被选择的第一张图。求大神赐教,怎么解决啊,十分感谢

可以遍历传过来的FILES数组,然后用循环调用UPLOAD类
public function upload(){
$upload = new \Think\Upload();// 实例化上传类
$upload->maxSize = 2000000 ;// 设置附件上传大小
$upload->exts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类
$upload->rootPath = ''./Uploads/';
$upload->savePath = date('Y').'/'.date('m').'/'.date('d').'/';
$upload->subName = array('date', 'H');
$upload->saveName = md5(uniqid());
$info = $upload->upload();
if(!$info) { // 上传错误提示
$this->error($upload->getError());
}else{ // 上传成功
return $info;
//$this->success('上传成功!');
}

}
//调用
foreach($_FILES["banner_index"]["size"] as $key=>$val){
if($val>0){
$info=$this->upload(); //判断上传文件大小大于0,调用upload
foreach($info as $v){
echo $v["savepath"].$v["savename"]; }
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-07
把banner_index去掉在$_FIFLES里面