So laden Sie mehrere Dateien in PHP hoch

墨辰丷
Freigeben: 2023-03-27 21:30:01
Original
2004 Leute haben es durchsucht

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;
}
Nach dem Login kopieren

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);
  }
Nach dem Login kopieren

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

$i = 0;
$files = buildInfo();
Nach dem Login kopieren

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;
    }
Nach dem Login kopieren

6 Dateitypen

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

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

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

8 . Bestimmen Sie die Dateigröße

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

Bestimmen Sie, ob die Datei per Post hochgeladen wird

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

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++;
      }
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!