Home > Backend Development > PHP Tutorial > PHP implements multiple image upload and single image upload functions

PHP implements multiple image upload and single image upload functions

不言
Release: 2023-03-29 06:24:01
Original
1795 people have browsed it

This article introduces to you the multi-image upload and single-image upload functions based on PHP through example code. The code is simple and easy to understand, very good, and has certain reference value. Friends in need can refer to it

The following code will introduce you to the function of single image upload and multi-image upload in PHP. The specific code is as follows:

/**
   * 多选图片上传
   * 
   * @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;
  }
Copy after login

The above is the detailed content of PHP implements multiple image upload and single image upload functions. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template