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

 更新时间:2017年09月26日 09:07:05   作者:传闻中的张先生  
下面小编就为大家带来一篇Thinkphp3.2简单解决多文件上传只上传一张的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

html简单页面:

index.html代码:

<form action="{:U('index/upload')}" method="post" enctype="multipart/form-data">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 文件上传:<input type="file" name = "test[]">
 <input type="submit" value = "提交">
</form>

控制器IndexController.class.php代码:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
 public function index(){
  $this->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 \Think\Upload($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简单解决多文件上传只上传一张的问题就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 6个超实用的PHP代码片段

    6个超实用的PHP代码片段

    这篇文章主要介绍了10个超实用的PHP代码样例:黑名单过滤、随机颜色生成器、从网上下载文件、强制下载文件、截取图片、检查网站是否宕机,需要的朋友可以参考下
    2015-08-08
  • PHP之header函数详解

    PHP之header函数详解

    这篇文章主要介绍了PHP之header函数详解,小编觉得这个header函数的技术点还是比较重要的,感兴趣的同学可以研究下
    2021-03-03
  • 实例详解PHP中html word 互转的方法

    实例详解PHP中html word 互转的方法

    这篇文章主要介绍了实例详解PHP中html word 互转的方法的相关资料,涉及到php html word互转的相关知识,本文介绍的非常详细,具有参考借鉴价值
    2016-01-01
  • php jquery 多文件上传简单实例

    php jquery 多文件上传简单实例

    这篇文章主要介绍了php jquery 多文件上传简单实例,有需要的朋友可以参考一下
    2013-12-12
  • php中通过smtp发邮件的类,测试通过

    php中通过smtp发邮件的类,测试通过

    php中通过smtp发邮件的类,测试通过...
    2007-01-01
  • PHP 设计模式系列之 specification规格模式

    PHP 设计模式系列之 specification规格模式

    规格模式是组合模式的一种扩展,在框架性开发中使用较多(项目级开发很少使用),通过本文给大家介绍PHP 设计模式系列之 specification规格模式,对specification模式相关知识感兴趣的朋友一起学习吧
    2016-01-01
  • php 中的closure用法详解

    php 中的closure用法详解

    这篇文章主要介绍了php 中的closure用法详解,需要的朋友可以参考下
    2017-06-06
  • PHP实现随机数字、字母的验证码功能

    PHP实现随机数字、字母的验证码功能

    本文通过实例代码给大家介绍了PHP实现随机数字、字母的验证码功能,代码简单易懂,非常不错,具有一定得参考借鉴价值,需要得朋友参考下吧
    2018-08-08
  • 使用laravel的Eloquent模型如何获取数据库的指定列

    使用laravel的Eloquent模型如何获取数据库的指定列

    今天小编就为大家分享一篇使用laravel的Eloquent模型如何获取数据库的指定列,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • PHP Smarty模版简单使用方法

    PHP Smarty模版简单使用方法

    这篇文章主要介绍了PHP Smarty模版简单使用方法,结合实例形式分析了PHP调用Smarty模板的配置,变量设置及使用方法,需要的朋友可以参考下
    2016-03-03

最新评论