Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert mehrere Bild-Upload- und Einzelbild-Upload-Funktionen

PHP implementiert mehrere Bild-Upload- und Einzelbild-Upload-Funktionen

不言
不言Original
2018-06-01 11:35:481748Durchsuche

In diesem Artikel werden die Funktionen zum Hochladen mehrerer Bilder und einzelner Bilder anhand von Beispielcode vorgestellt. Der Code ist einfach und leicht zu verstehen, sehr gut und hat einen gewissen Referenzwert it

Der folgende Code stellt die Funktion des Hochladens einzelner Bilder und mehrerer Bilder in PHP vor. Der spezifische Code lautet wie folgt:

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

Das obige ist der detaillierte Inhalt vonPHP implementiert mehrere Bild-Upload- und Einzelbild-Upload-Funktionen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn