首页  >  文章  >  后端开发  >  PHP实现多图上传和单图上传功能

PHP实现多图上传和单图上传功能

不言
不言原创
2018-06-01 11:35:481770浏览

本文通过实例代码给大家介绍了基于PHP实现多图上传和单图上传功能,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

下面一段代码给大家介绍php实现单图上传和多图上传的功能,具体代码如下所示:

/**
   * 多选图片上传
   * 
   * @version v1.0.0
   * @author 
   * @since  17-11-24
   */
  public function upload()
  {
    $file = $_FILES['file'];
    empty($file) && $this->response(201,'请选择要上传的文件');
    unset($_FILES['file']);
    $count = count($file['name']);       // 上传图片的数量
    $count > 10 && $this->response(203,'批量上传图片一次最多上传10张图片');
    $tmpFile  = [];
    $returnData = [];
    for($i=0;$i<$count;$i++)          // 循环处理图片
    {
      $tmpFile[&#39;name&#39;]   = $file[&#39;name&#39;][$i];
      $tmpFile[&#39;type&#39;]   = $file[&#39;type&#39;][$i];
      $tmpFile[&#39;tmp_name&#39;] = $file[&#39;tmp_name&#39;][$i];
      $tmpFile[&#39;error&#39;]  = $file[&#39;error&#39;][$i];
      $tmpFile[&#39;size&#39;]   = $file[&#39;size&#39;][$i];
      $_FILES[&#39;file_&#39;.$i] = $tmpFile;
      // 判断是否是允许的图片类型
      $ext = substr($_FILES[&#39;file_&#39;.$i][&#39;name&#39;],strrpos($_FILES[&#39;file_&#39;.$i][&#39;name&#39;],&#39;.&#39;)+1); // 上传文件后缀
      stripos(&#39;jpeg|png|bmp|jpg&#39;,$ext) === FALSE && $this->response(210,&#39;图片格式支持 JPEG、PNG、BMP格式图片&#39;);
      $data = $this->uploadOne(&#39;file_&#39;.$i,&#39;jpeg|png|bmp|jpg&#39;);
      if($data[&#39;status&#39;] == 1)
      {
        $this->response(500,&#39;第&#39;.($i+1).&#39;张图片上传失败,&#39;.$data[&#39;msg&#39;]);
      }
      $returnData[$i][&#39;url&#39;]   = $data[&#39;url&#39;];   // 图片路径
      $returnData[$i][&#39;old_name&#39;] = substr($tmpFile[&#39;name&#39;],0,strrpos($tmpFile[&#39;name&#39;], &#39;.&#39;)); // 图片原名称
    }
    $this->response(200,&#39;successful&#39;,$returnData);
  }
   /**
   * 单文件上传
   * @version v1.0.0
   * @author  
   * @since  17-11-24
   * @param  $file   上传表单name名称
   * @param  $type   上传类型
   * @param  $maxSize 上传文件限制大小(默认 10M)
   */
  private function uploadOne($filename = &#39;file&#39;,$type = &#39;jpeg|png|bmp|jpg&#39;,$maxSize = 10240)
  {
    list($width,$height)    = getimagesize($_FILES[$filename][&#39;tmp_name&#39;]); // 获取图片的宽和高
    list($usec, $sec) = explode(" ", microtime());
    $time = $sec.substr($usec,2);                         // 秒数+微秒数
    $ext = substr($_FILES[$filename][&#39;name&#39;],strrpos($_FILES[$filename][&#39;name&#39;],&#39;.&#39;)+1); // 上传文件后缀
    $name   = $time.&#39;-&#39;.$width.&#39;*&#39;.$height.&#39;.&#39;.$ext;
    $filePath = $_FILES[$filename][&#39;tmp_name&#39;];
    $type   = $_FILES[$filename][&#39;type&#39;];
    $this->load->library(&#39;Qiniu&#39;);
    $returnData[&#39;url&#39;] = $this->qiniu->upload($name,$filePath,$type);
    $returnData[&#39;status&#39;] = 0;
    return $returnData;
  }

以上是PHP实现多图上传和单图上传功能的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn