php框架

 首页 > php框架 > ThinkPHP > Thinkphp3.2简单解决多文件上传只上传一张的问题

Thinkphp3.2简单解决多文件上传只上传一张的问题

分享到:
【字体:
导读:
         [导读] html简单页面: index.html代码: formaction={:U(index/upload)}method=postenctype=multipart/form-data文件上传:inputtype=filename=test[]文件上传:inputtype=filename=test[]文件上传:inputtype=filename=test[]文件上传:...

html简单页面:

index.html代码:


 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 文件上传:
 

控制器IndexController.class.php代码:

display();
 }
 public function upload(){
  if(IS_POST){
   $config = array(
    'maxSize' => 3145728,
    'rootPath' => './Uploads/',
    'savePath' => '',
    'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
    'exts'  => array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub' => true,
    'subName' => array('date','Ymd'),
   );
   $upload = new ThinkUpload($config);// 实例化上传类
   $info = $upload->upload();
   if(!$info) {
    $this->error($upload->getError());
   }else{
    foreach($info as $file){
     echo $file['savepath'].$file['savename'];
    }
   }
  }else{
   $this->display();
  }
 }
}

上传结果显示:

好多人在进行多文件上传的时候,最后发现只是上传了一张,主要就是命名所致,因为是同样的名字,所以最后就剩一张图片
解决方法:第一种:

$config = array(
    'maxSize' => 3145728,
    'rootPath' => './Uploads/',
    'exts'  => array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub' => true,
    'subName' => array('date','Ymd'),
    'saveRule' => '',
   );

置空$config里面的saveRule,上传后的名称为:59c8d38cdb968.jpg

若是感觉这种命名不可靠,可采取第二种方法:

$config = array(
    'maxSize' => 3145728,
    'rootPath' => './Uploads/',
    'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),
    'exts'  => array('jpg', 'gif', 'png', 'jpeg'),
    'autoSub' => true,
    'subName' => array('date','Ymd'),
   );

设置$config中: 'saveName' => array('uniqid', mt_rand(1,999999).'_'.md5(uniqid())),

其最后的结果类似于:672563_30ad4d8a2aafc832363de8edc1940b5c59c8d44a303f9.jpg

然,命名可根据需要自行修改,多文件上传方法很多,这里只是提供个简单便捷的方法!

以上这篇Thinkphp3.2简单解决多文件上传只上传一张的问题就是小编分享给大家的全部内容了

分享到:
Thinkphp开发--集成极光推送
先说说为啥选用极光推送作为第三方的推送服务。 首先我所了解的推送产品有信鸽、个推、极光,之前用到过个推,感觉还不错,只是代码没有极光简洁,信鸽是腾讯旗下的产品,出于对Tencent的不喜欢,就没有考虑过,其次目前公司之前用过极光,ios和安卓这边对极光比较熟悉,所以就决定用极光推送了。 这里项目后台用的是php搭...
Thinkphp3.2的目录结构详细介绍
ThinkPHP框架目录结构 \index.php         入口文件 \Application     应用目录 \Public         资源文件目录 \ThinkPHP         框架核心目录   \Application    目录结构(应用目录,保存了所有的应用文件) \Application\Common         应用公共模块 \Application\Common\Common     应用公...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……