<?php
 class upload
 {
    public $files;
    public $seterror;
    public $allowtype;
    public $filetype;
    public $typeerror;
    public $path;
    public $succ=0;
    public $filenewname;
    function __construct($files,$path)
    {
        $this->path=$path;
        $this->files=$files;
        $this->seterror=1;
        $this->allowtype=array("jpg","gif","JPG","png","jpeg");
        $this->filetype=array();
        $this->filenewname=array();
        if(is_array($_FILES[$files]['name']))
        {
            foreach($_FILES[$files]['name'] as $key => $names)
            {
                $file_ex=explode(".",$names);
                $this->filetype[$key]=$file_ex[count($file_ex)-1];
                $this->filenewname[$key]=$this->path.time().$key.".".$this->filetype[$key];
            }
            foreach($this->filetype as $key => $type)
            {
                if(!in_array($type,$this->allowtype))
                {
                    $this->typeerror=$key+1;
                    $this->seterror="第".$this->typeerror."张图片类型不符合要求";
                    echo $this->seterror;
                    exit;
                }
            }
            foreach($_FILES[$files]['error'] as $val)
            {
                if($val!=0)
                {
                    switch($val)
                    {
                        case 1:;
                        case 2:$this->seterror="上传的文件过大,最大能上传2M";break;
                        case 3:$this->seterror="文件只有部分被上传";break;
                        case 4:$this->seterror="文件没有被上传";break;
                        case 6:$this->seterror="找不到临时文件夹";break;
                        case 7:$this->seterror="文件写入失败";break;
                    }
                    echo $this->seterror;
                    exit;
                }
            }
            
        }
        if(!file_exists($path))
        {
            mkdir($path,0777);
        }
        if($this->seterror==1)
        {
            $this->move_file();
        }
        
    }
    private function move_file()
    {
        
        foreach($_FILES[$this->files]['tmp_name'] as $key => $tmp)
            {
                 if(move_uploaded_file($tmp,$this->filenewname[$key]))
                 {
                    $this->succ+=1;
                 }
            }
        if($this->succ==count($_FILES[$this->files]['name']))
        {
            echo "全部上传成功";
        }
    }
 }
?>

php:上传多个文件的更多相关文章

  1. 强大的支持多文件上传的jQuery文件上传插件Uploadify

    支持多文件上传的jQuery文件上传插件Uploadify,目前此插件有两种版本即Flash版本和HTML5版本,对于HTML5版本会比较好的支持手机浏览器,避免苹果手机Safari浏览器不支持Fla ...

  2. spring mvc文件上传(单个文件上传|多个文件上传)

    单个文件上传spring mvc 实现文件上传需要引入两个必须的jar包    1.所需jar包:                commons-fileupload-1.3.1.jar       ...

  3. SecureCRT上传和下载文件

    SecureCRT上传和下载文件(下载默认目录) SecureCR 下的文件传输协议有ASCII .Xmodem .Ymodem .Zmodem ASCII:这是最快的传输协议,但只能传送文本文件. ...

  4. thinkphp如何一次性的上传多个文件,在文件域中可以多选?

    可以做到类似于某度网盘的样式吗? 文件夹的命名, 可以用单数, 也可以用复数, 在同一个项目中, 只要统一就好了. 毕竟项目开发不同于英语写作. 建议使用缩写, 不管是不是缩写都用单数, 这样简洁,容 ...

  5. Drupal8重命名上传的中文名文件

    完整的模块代码文件在Coding.net上,想直接使用的请前往下载:https://coding.net/u/yamus/p/chinese_rename/git/tree/master 最近吧Dru ...

  6. WordPress上传含有中文文件出现乱码

    最近打算学习安装配置WordPress,当然同时也在学习PHP+MySQL,希望以后能做一些关于WordPress定制和二次开发,包括主题和插件.在成功安装WordPress3.5中文版之后,就测试了 ...

  7. 11、只允许在主目录下上传和下载文件,不允许用putty登录

    创建用户xiao,   使其只允许在用户主目录 (/var/www/html)下上传和下载文件,不允许用putty登录 (为了安全起见,不给过多的权限) 1.创建xiao用户 [root@localh ...

  8. 每天一个linux命令(26):用SecureCRT来上传和下载文件

    用SSH管理linux服务器时经常需要远程与本地之间交互文件.而直接用SecureCRT自带的上传下载功能无疑是最方便的,SecureCRT下的文件传输协议有ASCII.Xmodem.Zmodem. ...

  9. BatsingJSLib 2.3、Ajax上传多个文件

    //2.3Ajax上传单个或多个文件 //<input type="file" multiple="multiple"/> //参数:文件的表单JD ...

  10. 上传读取Excel文件数据

    /// <summary> /// 上传读取Excel文件数据 /// 来自http://www.cnblogs.com/cielwater /// </summary> // ...

随机推荐

  1. "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法

    "SQLServer无法打开用户默认数据库,登录失败,错误4064"的解决办法 1.检查登录密码 如果密码错误,修改数据库密码,用windows身份验证登录进去, (1)安全--登 ...

  2. redis 库相关命令

    切换数据库: select 1 查看数据库大小:dbsize 清空数据库: flushdb

  3. Monkey 使用aapt查看apk包名

    使用aapt    //aapt是sdk自带的一个工具,在sdk\builds-tools\目录下1.以ES文件浏览器为例,命令行中切换到aapt.exe目录执行:aapt dump badging ...

  4. 【转】Linux下patch打补丁命令

    [转]Linux下patch打补丁命令 转自:http://www.cnblogs.com/noaming1900/archive/2010/10/28/1863282.html 此命令用于为特定软件 ...

  5. AlwaysOn数据同步问题探究

    随着AlwaysOn技术的流行,关于AlwayOn的问题也越来越多,某企业搭建有三副本的AlwaysOn一套,现想修改主节点上某张表的某个数据,看看会出现什么后果,如果结果正常,就同步到其他节点上:如 ...

  6. java.util.concurrent包分类结构图

    摘自:http://blog.csdn.net/tsyj810883979/article/details/6956290

  7. PHP自动发邮件

    自动发邮件 使用了这个类http://bbs.php100.com/read-htm-tid-121431.html 因他用的php版本较老,用到了函数ereg_replace() 和 ereg() ...

  8. flash透明效果代码分享~~~

    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://down ...

  9. document的createDocumentFragment()方法

    在<javascript高级程序设计>一书的6.3.5:创建和操作节点一节中,介绍了几种动态创建html节点的方法,其中有以下几种常见方法: · crateAttribute(name): ...

  10. C#驱动及应用

    一,使用开源客户端:StackExchange.Redis 二,使用方法:     1,获取访问redis数据库连接,代码如下. /// <summary> /// 获取访问redis数据 ...