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!