Heim  >  Artikel  >  tägliche Programmierung  >  Detaillierte Erläuterung der PHP-Datei-Upload-Methode und Informationsanalyse [mit Video]

Detaillierte Erläuterung der PHP-Datei-Upload-Methode und Informationsanalyse [mit Video]

藏色散人
藏色散人Original
2018-09-08 17:46:295385Durchsuche

In diesem Artikel werden hauptsächlich die PHP-Datei-Upload-Methode und ihre Informationsanalyse im Detail vorgestellt.

Die Verwendung von PHP zur Implementierung der Datei-Upload-Funktion ist in der PHP-Projektentwicklung relativ üblich, kann jedoch für einige Anfänger schwierig sein. Im Folgenden werden wir dies anhand spezifischer Codebeispiele ausführlich erläutern.

Erstellen Sie zunächst ein HTML-Formular für den Datei-Upload

Das Codebeispiel 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="file">
    <input type="submit" value="上传">
</form>
</body>
</html>

Der Effekt ist wie folgt:

Detaillierte Erläuterung der PHP-Datei-Upload-Methode und Informationsanalyse [mit Video]

Im obigen Code legen wir den Dateityp auf die Eingabeschaltfläche und den Namen der hochgeladenen Datei auf Datei fest. Wenn wir auf eine Datei oder ein Bild klicken, um sie auszuwählen, werden die Formulardaten an upload.php gesendet und dann werden entsprechende Vorgänge an der hochgeladenen Datei ausgeführt.

Dann definieren wir in der Datei upload.php eine Methode zur Analyse der relevanten Informationen der hochgeladenen Datei

Das spezifische Codebeispiel lautet wie folgt:

<?php
$fileInfo = $_FILES[&#39;file&#39;];
var_dump($_FILES[&#39;file&#39;]);

function upload_file($fileInfo, $upload = "./upload", $imagesExt = [&#39;gif&#39;, &#39;png&#39;, &#39;jpg&#39;])
{
    if ($fileInfo[&#39;error&#39;] === 0) {
        $ext = strtolower(pathinfo($fileInfo[&#39;name&#39;], 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[&#39;tmp_name&#39;], $destName)) {
            return "文件上传失败!";
        }
        return "文件上传成功!";
    } else {
        switch ($fileInfo[&#39;error&#39;]) {
            case 1:
                echo &#39;上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值&#39;;
                break;
            case 2:
                echo &#39;上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值&#39;;
                break;
            case 3:
                echo &#39;文件只有部分被上传&#39;;
                break;
            case 4:
                echo &#39;没有文件被上传&#39;;
                break;
            case 6:
                echo &#39;找不到临时文件夹&#39;;
                break;
            case 7:
                echo &#39;文件写入失败&#39;;
                break;
        }
    }
}
var_dump(upload_file($fileInfo));

Im obigen PHP-Code wird eine Variable $fileInfo definiert, um die vom Formular hochgeladenen Daten zu empfangen, und dann wird die Funktion var_dump verwendet, um die Informationen der hochgeladenen Datei auszudrucken und in einem Array anzuzeigen .

Wenn es dann keine Möglichkeit gibt, die Datei zu beurteilen, hat der direkte Zugriff über den Browser folgende Auswirkungen:

Detaillierte Erläuterung der PHP-Datei-Upload-Methode und Informationsanalyse [mit Video]

Tipp : error stellt die Fehlermeldung dar. Die Fehlernummer ist hier 0, was bedeutet, dass die hochgeladene Datei keine Fehler aufweist. Aber im PHP-Handbuch ist die Fehlernummer größer als 0.

Das Folgende ist eine kurze Zusammenfassung der Fehlernummern in Tabellenform

Der Wert ist 0
值为 0
值为 1 值为 2 值为 3 值为 4 值为 6 值为 7
没有错误发生,文件上传成功。 上传的文件超过了php.ini中       upload_max_filesize 选项限制的值。       上传文件的大小超过了 HTML 表单中       MAX_FILE_SIZE 选项指定的值。 文件只有部分被上传。       没有文件被上传 找不到临时文件夹。PHP 4.3.10 和 PHP 5.0.3 引进。 文件写入失败。PHP 5.1.0 引进。
Der Wert ist 1 Der Wert ist 2 Der Wert ist 3 Der Wert ist 4 Der Wert ist 6 Der Wert ist 7
Es sind keine Fehler aufgetreten und die Datei wurde erfolgreich hochgeladen. Die hochgeladene Datei überschreitet den durch die Option upload_max_filesize in php.ini begrenzten Wert. Die Größe der hochgeladenen Datei überschreitet den durch die Option MAX_FILE_SIZE im HTML-Formular angegebenen Wert. Nur ein Teil der Datei wurde hochgeladen. Keine Dateien hochgeladen Der temporäre Ordner kann nicht gefunden werden. Eingeführt in PHP 4.3.10 und PHP 5.0.3. Schreiben der Datei fehlgeschlagen. Eingeführt in PHP 5.1.0.

Nachdem wir das relevante Wissen über Fehlernummern verstanden haben, können wir eine PHP-Upload-Methode entwerfen, um mehrere Urteile über hochgeladene Dateien zu fällen. Im obigen Code wurde der spezifische Code für die Methodenbeurteilung sehr detailliert geschrieben. Zuerst haben wir die Methode upload_file() definiert, der drei Parameter zugewiesen wurden, die jeweils Datei-Upload-Informationen, ein Verzeichnis und ein Array zur Bestimmung des Dateityps darstellen . .

Verwenden Sie dann „if else“ und wechseln Sie die Beurteilungsanweisungen, um die hochgeladenen Dateien einzeln zu beurteilen.

Die Methode hier basiert auf dem Dateityp, der Existenz des Upload-Ordners und der Fehlermeldung.

Nachdem wir schließlich ein Bild hochgeladen haben, wird der endgültige Effekt wie folgt angezeigt:

Detaillierte Erläuterung der PHP-Datei-Upload-Methode und Informationsanalyse [mit Video]

Hinweis: md5() im obiger Code Die Funktion wird nicht zur Verschlüsselung, sondern zur Kodierung verwendet.

Der obige Artikel befasst sich mit der spezifischen Methode zum Hochladen von PHP-Dateien. Ich hoffe, dass er Freunden in Not hilfreich sein wird! Das entsprechende Video-Tutorial ist [PHP-Datei-Upload-Informationsanalyse und Kapselungs-Upload-Methode] als Referenz und zum Studium!

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der PHP-Datei-Upload-Methode und Informationsanalyse [mit Video]. 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