Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

藏色散人
Freigeben: 2019-11-08 17:57:18
Original
11008 Leute haben es durchsucht

In diesem Artikel werden Ihnen einige einfache Methoden zum Hochladen mehrerer Dateien in PHP vorgestellt.

Bevor wir diesen Wissensinhalt vorstellen, haben wir im vorherigen Artikel ausführlich die spezifische Methode zum Hochladen einer einzelnen Datei in PHP vorgestellt [Detaillierte Erläuterung der PHP-Datei-Upload-Methode und ihrer Informationsanalyse] Dann bezieht sich dieser Artikel auf die heute vorgestellten Wissenspunkte. Freunde, die ihn benötigen, können zuerst darauf verweisen.

Im Folgenden stellen wir Ihnen anhand spezifischer Codebeispiele einige einfache Methoden zum Hochladen mehrerer Dateien in PHP vor.

Die erste Methode: Verwenden Sie eine einzelne Datei-Upload-Methode

Ein einfacher Formularcode lautet wie folgt:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">
 选择文件进行上传: <input type="file" name="file1">
 选择文件进行上传: <input type="file" name="file2">
 选择文件进行上传: <input type="file" name="file3">
    <input type="submit" value="上传">
</form>
</body>
</html>
Nach dem Login kopieren

Der Codeeffekt ist wie folgt:

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Wie in der Abbildung gezeigt, haben wir drei Dateien hochgeladen und diese dann in die Datei upload.php hochgeladen. Der PHP-Code lautet wie folgt:

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump($_FILES);
Nach dem Login kopieren

Dann greifen wir wie folgt weiter auf die Ergebnisse über den Browser zu:

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Hier erhalten wir das zweidimensionale Array Wenn wir im Bild mehrere Dateien hochladen möchten, muss dies durch eine foreach-Schleife erreicht werden.

Dann lautet der vollständige Code von upload.php wie folgt:

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump($_FILES);
$files = [];
foreach ($_FILES as $fileInfo) {
    $files[] = upload_file($fileInfo);
}
var_dump($files);
function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg'])
{
    if ($fileInfo['error'] === 0) {
        $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            return "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo['error']) {
            case 1:
                echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
                break;
            case 2:
                echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
                break;
            case 3:
                echo '文件只有部分被上传';
                break;
            case 4:
                echo '没有文件被上传';
                break;
            case 6:
                echo '找不到临时文件夹';
                break;
            case 7:
                echo '文件写入失败';
                break;
        }
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Schließlich wählen wir mehrere Dateien zum Hochladen aus und das Ergebnis sieht wie folgt aus:

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Zu diesem Zeitpunkt wurden mehrere Datei-Upload-Vorgänge erfolgreich implementiert.

Zweite Methode: Verwendung der Mehrfachmethode in HTML5

Codebeispiel einer HTML-Schnittstelle zum Hochladen mehrerer Dateien Wie folgt :

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

Die Wirkung dieses Codes ist wie folgt:

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Im Formular hier verwenden wir in HTML 5 mit mehreren Attributen Dieses Attribut gibt an, dass das Eingabefeld mehrere Werte auswählen kann. Das heißt, wenn dieses Attribut ausgewählt ist, kann dieses Feld mehrere Werte akzeptieren. Multiple ist für uns ein wichtiges Attribut, um mehrere Datei-Uploads zu implementieren. Gleichzeitig setzen wir den Namen in der Eingabe auf ein file[]-Array.

Dann wählen wir mehrere Dateien zum Hochladen aus, wie unten gezeigt:

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Wie im Bild gezeigt Wir haben „Drei Bilder“ ausgewählt und verwenden dann die folgende Datei „upload.php“, um die drei Daten zu empfangen.

Das Upload.php-Codebeispiel lautet wie folgt:

<?php
echo "<pre class="brush:php;toolbar:false">";
var_dump($_FILES);
$files = [];
foreach ($_FILES as $fileInfo) {
    $files[] = upload_file($fileInfo);
}
var_dump($files);
function upload_file($fileInfo, $upload = "./upload", $imagesExt = ['gif', 'png', 'jpg'])
{
    if ($fileInfo['error'] === 0) {
        $ext = strtolower(pathinfo($fileInfo['name'], PATHINFO_EXTENSION));
        if (!in_array($ext, $imagesExt)) {
            return "文件非法类型";
        }
        if (!is_dir($upload)) {
            mkdir($upload, 0777, true);
        }
        $fileName = md5(uniqid(microtime(true), true)) . "." . $ext;
        $destName = $upload . "/" . $fileName;
        if (!move_uploaded_file($fileInfo['tmp_name'], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo['error']) {
            case 1:
                echo '上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值';
                break;
            case 2:
                echo '上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值';
                break;
            case 3:
                echo '文件只有部分被上传';
                break;
            case 4:
                echo '没有文件被上传';
                break;
            case 6:
                echo '找不到临时文件夹';
                break;
            case 7:
                echo '文件写入失败';
                break;
        }
    }
}
Nach dem Login kopieren
Nach dem Login kopieren

Nach dem Hochladen von drei Dateien zu diesem Zeitpunkt und dem Zugriff über den Browser lautet das Ergebnis wie folgt:

Welche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos)

Auf dem Bild können wir sehen, dass die hochgeladenen Dateiinformationen in Form eines dreidimensionalen Arrays angezeigt werden, in dem die Namen, Typen, Pfade, Größen und temporären Speicherorte aufgeführt sind Andere Informationen der drei Bilder werden in einem im Array platziert.

Wir können jedoch feststellen, dass die Informationsanalysemethode in der Datei upload.php keine Auswirkungen auf Dateien hat, die mit dem Mehrfachattribut hochgeladen wurden.

In diesem Artikel werden Ihnen zunächst zwei einfache Methoden zur Implementierung mehrerer Datei-Uploads mithilfe des Multiple-Attributs vorgestellt. In den folgenden Artikeln werden wir weiterhin detailliert vorstellen, wie PHP mehrere Datei-Uploads und -Informationen implementiert. Analyse ist die detaillierte Erklärung der zweiten Methode!

Wenn Sie mehr über PHP erfahren möchten, können Sie der chinesischen PHP-Website PHP-Video-Tutorial folgen. Begrüßen Sie alle zum Nachschlagen und Lernen!

Das obige ist der detaillierte Inhalt vonWelche einfachen Möglichkeiten gibt es, mehrere Dateien in PHP hochzuladen? (Bilder + Videos). 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