Heim  >  Artikel  >  Backend-Entwicklung  >  So laden Sie mehrere Dateien in PHP hoch

So laden Sie mehrere Dateien in PHP hoch

墨辰丷
墨辰丷Original
2018-05-25 10:51:141958Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zum Hochladen mehrerer Dateien in PHP vorgestellt. Interessierte Freunde können darauf verweisen.

Mehrere Dateien hochladen

1 Bevor Sie mehrere Dateiinformationen bearbeiten, müssen Sie die Dateiinformationen erstellen und die Funktion buildInfo verwenden, um das dreidimensionale Array in ein zweidimensionales Array umzuwandeln ist praktisch für Dateioperationen.

function buildInfo(){
  $i = 0;
  foreach ($_FILES as $v){
    //判断是否是单文件
    if(is_string($v['name'])){
      $files[$i] = $v;
      $i++;
    }else{
      //多文件
      foreach ($v['name'] as $key => $value){
        $files[$i]['name'] = $value;
        $files[$i]['size'] = $v['size'][$key];
        $files[$i]['tmp_name'] = $v['tmp_name'][$key];
        $files[$i]['type'] = $v['type'][$key];
        $files[$i]['error'] = $v['error'][$key];
        $i++;
      }
    }
  }
  return $files;
}

Die Beurteilung zwischen einzelner Datei und mehreren Dateien liegt in der Art des Dateiarrays, einzelne Datei (zweidimensionales Array), mehrere Dateien (dreidimensional). Array).

2. Datei-Upload-Funktion und Parameter


Code kopieren Der Code lautet wie folgt:


Funktion uploadFiles ($path = "uploads", $allowExt = array("jpg", "gif", "png", "wbmp"), $maxSize = 1048576, $imgFlag = true)

Pfad, speichern Sie das Verzeichnis. allowExt, Array zulässiger Erweiterungen. maxSizeDie maximale Upload-Dateigröße. imgFlag, Bilddatei-ID.

3. Bestimmen Sie, ob das Verzeichnis, in dem die Datei gespeichert ist, existiert

if(!file_exists($path)){
    mkdir($path, 0777, true);
  }

4. Übergeben Sie die erstellten Dateiinformationen und speichern Sie sie in Dateien

$i = 0;
$files = buildInfo();

5. Bestimmen Sie den Fehlertyp der Datei

foreach ($files as $file){
    if($file['error'] == UPLOAD_ERR_OK){
}else{
    switch ($file['error']){
      case 1:
        $mes = "超过配置文件上传文件大小";
        break;
      case 2:
        $mes = "超过了表单设置";
        break;
      case 3:
        $mes = "文件部分被上传";
        break;
      case 4:
        $mes = "没有文件上传";
        break;
      case 6:
        $mes = "没找到临时目录";
        break;
      case 7:
        $mes = "文件不可写";
        break;
      case 8:
        $mes = "由于PHP的扩展程序中断了文件上传";
        break;
    }

6 Dateitypen

if($file['error'] == UPLOAD_ERR_OK){
      $ext = getExt($file['name']);
      if(!in_array($ext, $allowExt)){
        exit("非法文件类型");
      }

7. Ob es sich bei der Einschränkung um einen echten Bildtyp handelt

if($imgFlag){
        if(!getimagesize($file['tmp_name'])){
          exit("不是真的图片类型");
        }
      }

8 . Bestimmen Sie die Dateigröße

if($file['size'] > $maxSize){
        exit("文件过大");
      }

Bestimmen Sie, ob die Datei per Post hochgeladen wird

if(!is_uploaded_file($file[‘tmp_name'])){ 
exit(“文件不是通过HTTP POST上传”); 
}

10. Benennen Sie die Datei um (einzigartig und nicht dupliziert) und speichern Sie sie im Zielverzeichnis.

$filename = getUniName().".".$ext;
$destination = $path."/".$filename;
if(move_uploaded_file($file['tmp_name'], $destination)){
        $mes = "文件上传成功";
        $file['name'] = $filename;
        unset($file['error'], $file['tmp_name']);
        $uploadedFiles[$i] = $file;
        $i++;
      }

Schreiben Sie den Namen im Dateiinformationsarray neu und löschen Sie ihn die Variablen file['error'] und file[ 'tmp_name']. Speichern Sie abschließend die erfolgreich hochgeladenen Dateien im Array uploadedFiles.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, dass er für das Studium aller hilfreich sein wird.


Verwandte Empfehlungen:

Mehrere Dateien in PHP hochladenmax_file_uploads-Limit-Problem

Lösung für das Problem des Hochladens mehrerer Dateienmax_file_uploads-Beschränkung in PHP

PHPHochladen mehrerer Dateien, Beispielcode für mehrere Bilder

Das obige ist der detaillierte Inhalt vonSo laden Sie mehrere Dateien in PHP hoch. 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