Heim  >  Artikel  >  tägliche Programmierung  >  Wie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos)

Wie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos)

藏色散人
藏色散人Original
2018-09-17 17:35:086520Durchsuche

In diesem Artikel wird weiterhin erläutert, wie Sie das Multiple-Attribut in HTML5 verwenden, um das Hochladen mehrerer Dateien und das Parsen von Informationen in PHP zu implementieren.

Was sind also die einfachen Möglichkeiten, mehrere Dateien in PHP hochzuladen in unserem vorherigen Artikel [Was sind die einfachen Möglichkeiten, mehrere Dateien in PHP hochzuladen? ], ich habe kurz einige einfache Methoden zum Hochladen mehrerer Dateien in PHP vorgestellt. Freunde, die es benötigen, können darauf verweisen.

Im Folgenden werden wir anhand spezifischer Codebeispiele im Detail vorstellen, wie PHP das Multiple-Attribut verwendet, um das Hochladen mehrerer Dateien und das Parsen von Informationen zu implementieren.

Zuerst lautet der HTML-Formularcode wie folgt:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="getFile.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file[]" multiple=""><br>
    <input type="submit" value="上传">
</form>
</body>
</html>

Wir laden mehrere Bilder hoch und greifen dann über den Browser darauf zu. Der Effekt ist wie folgt:

Wie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos)

Wie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos)

Wie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos)

Laden Sie dann die Datei in die Datei getFile.php hoch. Das PHP-Codebeispiel lautet wie folgt :

var_dump($_FILES);

Dies Die Ergebnisse beim Zugriff über den Browser sind wie folgt:

Wie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos)

Zu diesem Zeitpunkt können Sie sehen, dass wir die drei erhalten haben -dimensionales Array im Bild oben.

Wenn wir also die Informationen mehrerer hochgeladener Dateien analysieren möchten, müssen wir zuerst die hochgeladenen Informationen zusammenstellen.

Dann lautet der vollständige getFile.php-Code wie folgt:

<?php
/**
 * 组装多文件上传信息
 */
$files = [];
function getFile()
{
    $i = 0;
    foreach ($_FILES as $file) {
        if (is_string($file[&#39;name&#39;])) {
            $files[&#39;$i&#39;] = $file;
            $i++;
        } elseif (is_array($file[&#39;name&#39;])) {
            foreach ($file[&#39;name&#39;] as $k => $v) {
                $files[$i][&#39;name&#39;] = $file[&#39;name&#39;][$k];
                $files[$i][&#39;type&#39;] = $file[&#39;type&#39;][$k];
                $files[$i][&#39;tmp_name&#39;] = $file[&#39;tmp_name&#39;][$k];
                $files[$i][&#39;error&#39;] = $file[&#39;error&#39;][$k];
                $files[$i][&#39;size&#39;] = $file[&#39;size&#39;][$k];
                $i++;
            }
        }
    }
    return $files;
}

/**
 * 文件上传
 * @param $fileInfo
 * @param string $upload
 * @param array $imagesExt
 * @return string
 */
function upload_file($fileInfo, $upload = "./upload", $imagesExt = [&#39;gif&#39;, &#39;png&#39;, &#39;jpg&#39;])
{
    $res = [];
    if ($fileInfo[&#39;error&#39;] === 0) {
        $ext = strtolower(pathinfo($fileInfo[&#39;name&#39;], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            $res[&#39;mes&#39;] = "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        if ($res) {
            return $res;
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo[&#39;tmp_name&#39;], $destName)) {
            $res[&#39;mes&#39;] = "文件上传失败!";
        }
        $res[&#39;mes&#39;] = $fileInfo[&#39;name&#39;] . "文件上传成功!";
        $res[&#39;dest&#39;] = $destName;
        return $res;
    } else {
        switch ($fileInfo[&#39;error&#39;]) {
            case 1:
                $res[&#39;mes&#39;] = &#39;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值&#39;;
                break;
            case 2:
                $res[&#39;mes&#39;] = &#39;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值&#39;;
                break;
            case 3:
                $res[&#39;mes&#39;] = &#39;文件只有部分被上传&#39;;
                break;
            case 4:
                $res[&#39;mes&#39;] = &#39;没有文件被上传&#39;;
                break;
            case 6:
                $res[&#39;mes&#39;] = &#39;找不到临时文件夹&#39;;
                break;
            case 7:
                $res[&#39;mes&#39;] = &#39;文件写入失败&#39;;
                break;
        }
        return $res;
    }
}

$files = getFile();

foreach ($files as $fileInfo) {
    $res = upload_file($fileInfo);
    echo $res[&#39;mes&#39;];
    var_dump($res[&#39;dest&#39;]);
}

Im obigen Code übergeben wir zuerst die foreach-Loop-Beurteilungsanweisung an Überprüfen Sie die hochgeladenen Informationen. Die mehrdimensionalen Array-Informationen werden beurteilt und neu organisiert . Anschließend wird die Methode upload_file erstellt, um die Upload-Informationen mehrerer Dateien zu analysieren.

Die hier beschriebene Methode upload_file wurde in diesem Artikel ausführlich vorgestellt [Ausführliche Erläuterung der PHP-Datei-Upload-Methode und ihrer Informationsanalyse], Sie können sich darauf beziehen. Das Obige ist die spezifische Methode zum Implementieren des Hochladens mehrerer Dateien und der Informationsanalyse in PHP.

Wenn Sie mehr über PHP erfahren möchten, können Sie dem PHP-Video-Tutorial auf der chinesischen PHP-Website folgen!

Das obige ist der detaillierte Inhalt vonWie verwende ich mehrere Attribute in PHP, um mehrere Dateien hochzuladen und Informationen zu analysieren? (Bilder + Videos). 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