Relevante Kenntnisse und Anwendung des PHP-Datei-Uploads

jacklove
Freigeben: 2023-03-25 13:44:01
Original
1501 Leute haben es durchsucht

PHP-Datei-Upload spielt eine wichtige Rolle auf der Website und wird in diesem Artikel ausführlich erläutert.

Erstellen eines Datei-Upload-Formulars

Es ist sehr nützlich, Benutzern das Hochladen von Dateien aus einem Formular zu ermöglichen.

Sehen Sie sich das HTML-Formular unten zum Hochladen von Dateien an:

<html><head><meta charset="utf-8"><title>菜鸟教程(runoob.com)</title></head><body><form action="upload_file.php" method="post" enctype="multipart/form-data">    <label for="file">文件名:</label>    <input type="file" name="file" id="file"><br>    <input type="submit" name="submit" value="提交"></form></body></html>
Nach dem Login kopieren

Speichern Sie den obigen Code in der Datei form.html.

Einige Hinweise zum obigen HTML-Formular sind unten aufgeführt:

Das enctype-Attribut des Tags gibt an, welcher Inhaltstyp beim Absenden des Formulars verwendet werden soll. Verwenden Sie „multipart/form-data“, wenn Ihr Formular Binärdaten erfordert, z. B. Dateiinhalte. Das Attribut „type="file" des Tags

gibt an, dass die Eingabe als Datei verarbeitet werden soll. Wenn Sie beispielsweise eine Vorschau in einem Browser anzeigen, wird neben dem Eingabefeld eine Schaltfläche zum Durchsuchen angezeigt.

Hinweis: Benutzern das Hochladen von Dateien zu erlauben, stellt ein großes Sicherheitsrisiko dar. Bitte erlauben Sie nur vertrauenswürdigen Benutzern, Datei-Upload-Vorgänge durchzuführen.

Erstellen Sie ein Upload-Skript

Die Datei „upload_file.php“ enthält den Code zum Hochladen von Dateien:

<?phpif ($_FILES["file"]["error"] > 0){    echo "错误:" . $_FILES["file"]["error"] . "<br>";}else{    echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";    echo "文件类型: " . $_FILES["file"]["type"] . "<br>";    echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";    echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];}?>
Nach dem Login kopieren

Mithilfe des globalen Arrays $_FILES von PHP können Sie dies tun start from Der Client-Computer lädt die Datei auf den Remote-Server hoch.

Der erste Parameter ist der Eingabename des Formulars, und der zweite Index kann „Name“, „Typ“, „Größe“, „tmp_name“ oder „Fehler“ sein. Wie unten gezeigt:

$_FILES["file"]["name"] – der Name der hochgeladenen Datei

$_FILES["file"]["type"] - der Typ der hochgeladenen Datei

$_FILES["file"]["size"] – Größe der hochgeladenen Datei in Bytes

$_FILES["file"]["tmp_name"] - Gespeichert auf dem Server Der Name der temporären Kopie der Datei

$_FILES["file"]["error"] – der Fehlercode, der durch das Hochladen der Datei verursacht wurde

Dies ist eine sehr einfache Möglichkeit zum Hochladen von Dateien. Aus Sicherheitsgründen sollten Sie Beschränkungen hinzufügen, wer Dateien hochladen darf.

Upload-Limit

In diesem Skript haben wir ein Limit für Datei-Uploads hinzugefügt. Benutzer können nur .gif-, .jpeg-, .jpg- und .png-Dateien hochladen, und die Dateigröße muss weniger als 200 kB betragen:

<?php// 允许上传的图片后缀$allowedExts = array("gif", "jpeg", "jpg", "png");$temp = explode(".", $_FILES["file"]["name"]);$extension = end($temp);        // 获取文件后缀名if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/jpg")|| ($_FILES["file"]["type"] == "image/pjpeg")|| ($_FILES["file"]["type"] == "image/x-png")|| ($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] < 204800)    // 小于 200 kb&& in_array($extension, $allowedExts)){    if ($_FILES["file"]["error"] > 0)    {        echo "错误:: " . $_FILES["file"]["error"] . "<br>";    }    else    {        echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";        echo "文件类型: " . $_FILES["file"]["type"] . "<br>";        echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";        echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"];    }}else{    echo "非法的文件格式";}?>
Nach dem Login kopieren

Speichern Sie die hochgeladene Datei

Das obige Beispiel ist in Die temporäre PHP-Datei des Servers. Im Ordner wird eine temporäre Kopie der hochgeladenen Datei erstellt.

Diese temporäre Kopie verschwindet, wenn das Skript endet. Um die hochgeladene Datei zu speichern, müssen wir sie an einen anderen Ort kopieren:

<?php// 允许上传的图片后缀$allowedExts = array("gif", "jpeg", "jpg", "png");$temp = explode(".", $_FILES["file"]["name"]);echo $_FILES["file"]["size"];$extension = end($temp);     // 获取文件后缀名if ((($_FILES["file"]["type"] == "image/gif")|| ($_FILES["file"]["type"] == "image/jpeg")|| ($_FILES["file"]["type"] == "image/jpg")|| ($_FILES["file"]["type"] == "image/pjpeg")|| ($_FILES["file"]["type"] == "image/x-png")|| ($_FILES["file"]["type"] == "image/png"))&& ($_FILES["file"]["size"] < 204800)   // 小于 200 kb&& in_array($extension, $allowedExts)){    if ($_FILES["file"]["error"] > 0)    {        echo "错误:: " . $_FILES["file"]["error"] . "<br>";    }    else    {        echo "上传文件名: " . $_FILES["file"]["name"] . "<br>";        echo "文件类型: " . $_FILES["file"]["type"] . "<br>";        echo "文件大小: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";        echo "文件临时存储的位置: " . $_FILES["file"]["tmp_name"] . "<br>";        
        // 判断当期目录下的 upload 目录是否存在该文件        // 如果没有 upload 目录,你需要创建它,upload 目录权限为 777        if (file_exists("upload/" . $_FILES["file"]["name"]))        {            echo $_FILES["file"]["name"] . " 文件已经存在。 ";        }        else        {            // 如果 upload 目录不存在该文件则将文件上传到 upload 目录下            move_uploaded_file($_FILES["file"]["tmp_name"], "upload/" . $_FILES["file"]["name"]);            echo "文件存储在: " . "upload/" . $_FILES["file"]["name"];        }    }}else{    echo "非法的文件格式";}?>
Nach dem Login kopieren

Dieser Artikel enthält eine detaillierte Erklärung der PHP-Upload-Dateien. Weitere Lernmaterialien finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

PHP-Schleifen – Die While-Schleife verstehen und verwenden

PHP 5 Echo- und Print-Anweisungen Wissen und Anwendung

Verständnis und Anwendung von PHP Magic-Variablen

Das obige ist der detaillierte Inhalt vonRelevante Kenntnisse und Anwendung des PHP-Datei-Uploads. 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