zoukankan      html  css  js  c++  java
  • HTML5 多图上传

    HTML5 多图上传

    一次选择多张照片,你是不是要这样的效果 

    刚刚研究完FLASH的多图上传,不过 html5 这么时髦的东西,也得研究下。
    
    研究了半天发现 html5 其实特别简单。
    
    多图控件<input id="fileImage" type="file" size="30" name="files[]" multiple />
    multiple 这个input的特性是html5新有的,所以IE6这么低级的货是无法兼容的。
    
    这个属性相当于以前的这样的 多图 情况
    
    <input id="fileImage" type="file" size="30" name="files[]" >
    <input id="fileImage" type="file" size="30" name="files[]" >
    <input id="fileImage" type="file" size="30" name="files[]" >
    不过道理很简单一个是一次只能选择一个图片
    
    HTML5的这个可以选择多个图片,拉风啊。
    
    后台代码不变。
    
    function getimgmany($rr,$upload_image_dir)
    {
      $fs = $_FILES[$rr];
      $imgnames = array();
     
      for($i=0;$i<count($fs['name']);$i++)
      {
        //得到扩展名
     
        $pathinfo = pathinfo($_FILES[$rr]['name'][$i]);
     
        if($fs['size']==0)continue;
     
          //检查文件扩展名,看是否是支持的图片格式
          $fileextname = "jpg|gif|png|jpeg|bmp";
          if($type=="file")
          {
            $fileextname.="|txt|sql|html|htm|pdf|chm|rar|zip|doc|xls";
          }
          echo $pathinfo["extension"];
          if( !preg_match("/^".$fileextname."$/i", $pathinfo["extension"]) )
          {
            echo "<div style='font-size:12px;color=red;font-weight:bold;'>不支持的扩展名 <a href='javascript:history.back(-1);'>点击返回</a></div>";
            exit();
          }
     
          srand ((double) microtime() * 948625); 
     
          //生成随机文件名
          $targetname =time();
          $targetname .= rand() . '.' . $pathinfo["extension"];
     
          $targetpath = $upload_image_dir .strftime ("%Y%m" ,time())."/". $targetname;
          copy($_FILES[$rr]['tmp_name'][$i],  $targetpath);
          unlink($_FILES[$rr]['tmp_name'][$i]);        
     
          $imga = $targetpath;
          array_push($imgnames,$imga);
        }
        return $imgnames;
      }
    $imgdir = "uploads/";
    $imgs = getimgmany('files',$imgdir);
    print_r($imgs);
    首发地址:月小升博客
  • 相关阅读:
    .NET Core微服务开发服务间调用篇-GRPC
    .NET Core微服务开发网关篇-ocelot
    刷新.NET
    (译)An introduction to Kubernetes
    一文了解Nuget的使用
    .NET Core应用框架AA介绍(二)
    .NET Core 3.0 使用Nswag生成Api文档和客户端代码
    .NET core3.0 使用Jwt保护api
    阅读源码学设计模式-单例模式
    .NET Core 3.0 部署在docker上运行
  • 原文地址:https://www.cnblogs.com/archoncap/p/5216622.html
Copyright © 2011-2022 走看看