English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
PHP-Datei-Upload
Mit PHP können Sie Dateien auf den Server hochladen.
Dieser Abschnitt wird im Projekt "test" abgeschlossen, die Verzeichnisstruktur ist wie folgt:
test
|-----upload # Verzeichnis für Datei-Uploads
|-----form.html # Formulardatei
|-----upload_file.php # PHP-Upload-Code
Quellcode-Download:Datei-Upload
Erstellen Sie ein Formular zum Hochladen von Dateien
Es ist sehr nützlich, Benutzern das Hochladen von Dateien aus dem Formular zu erlauben.
Sehen Sie untenstehende HTML-Formular, das Dateien hochladen kann:
<html> <head> <meta charset="utf-8"> <title>Runoob-Tutorial(runoob.com)</title> </head> <body> <form action="upload_file.php" method="post" enctype="multipart/form-data"> <label for="file">Dateiname:</label> <input type="file" name="file" id="file"><br> <input type="submit" name="submit" value="提交"> </form> </body> </html>
Speichern Sie den folgenden Code in die Datei form.html:
Einige wichtige Punkte zu den obigen HTML-Formularen sind wie folgt aufgeführt:
1.<form> Attribute enctype legt fest, welche Inhaltstypen beim Absenden des Formulars verwendet werden sollen. Verwenden Sie "multipart", wenn das Formular binäre Daten wie Dateinhalte benötigt./form-data".
2.<input> Attribute type="file" legt fest, dass der Eingang als Datei behandelt werden soll. Zum Beispiel, wenn Sie im Browser betrachten, sehen Sie einen Schalter neben dem Eingabefeld.
Anmerkung:Ermöglichen Sie Benutzern das Hochladen von Dateien ist ein großer Sicherheitsrisiko. Erlauben Sie nur vertrauenswürdigen Benutzern, Datei-Upload-Operationen durchzuführen.
Erstellen Sie einen Upload-Skript
"upload_file.php" Datei enthält den Code zum Hochladen von Dateien:
<?php if ($_FILES["file"]["error"] > 0) { echo "Fehler: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload-Dateiname: " . $_FILES["file"]["name"] . "<br>"; echo "Dateityp: " . $_FILES["file"]["type"] . "<br>"; echo "Dateiüssung: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Tempörlicher Speicherort der Datei: " . $_FILES["file"]["tmp_name"]; } ?>
Durch die Verwendung des PHP-Globalarrays $_FILES können Sie von dem Computer des Kunden Dateien auf den Remote-Server hochladen.
Der erste Parameter ist der input name des Formulars, der zweite Index kann "name", "type", "size", "tmp_name" oder "error" sein. Zum Beispiel:
$_FILES["file"]["name"] - Der Name der hochgeladenen Datei
$_FILES["file"]["type"] - Der Typ der hochgeladenen Datei
$_FILES["file"]["size"] - Die Größe der hochgeladenen Datei in Bytes
$_FILES["file"]["tmp_name"] - Name der temporären Kopie der Datei, die auf dem Server gespeichert wird
$_FILES["file"]["error"] - Fehlercodes, die durch Datei-Uploads verursacht werden
Dies ist eine sehr einfache Methode zum Hochladen von Dateien. Aus Sicherheitsgründen sollten Sie Einschränkungen für die hochladbaren Benutzer hinzufügen.
Upload-Einschränkungen
In diesem Skript haben wir Einschränkungen für die Datei-Uploads hinzugefügt. Der Benutzer kann nur .gif, .jpeg, .jpg, .png-Dateien hochladen, und die Dateigröß muss kleiner als 200 kB:
<?php // Erlaubte Dateiendungen für hochgeladene Bilder $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); $extension = end($temp); // Erhalten Sie die Dateiendung des Dateinamens 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) // kleiner als 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Fehler: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload-Dateiname: " . $_FILES["file"]["name"] . "<br>"; echo "Dateityp: " . $_FILES["file"]["type"] . "<br>"; echo "Dateiüssung: " . ($_FILES["file"]["size"] / 1024) . " kB<br>"; echo "Tempörlicher Speicherort der Datei: " . $_FILES["file"]["tmp_name"]; } } else { echo "非法的文件格式"; } ?>
Speichern Sie die hochgeladene Datei
Der obige Beispiel erstellt eine temporäre Kopie der hochgeladenen Datei im PHP-Temp-Ordner des Servers.
Dieser temporäre Screenshotdatei wird am Ende des Skripts entfernt. Um die hochgeladene Datei zu speichern, müssen wir sie an einen anderen Ort kopieren:
<?php // Erlaubte Dateiendungen für hochgeladene Bilder $allowedExts = array("gif", "jpeg", "jpg", "png"); $temp = explode(".", $_FILES["file"]["name"]); echo $_FILES["file"]["size"]; $extension = end($temp); // Erhalten Sie die Dateiendung des Dateinamens 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) // kleiner als 200 kb && in_array($extension, $allowedExts)) { if ($_FILES["file"]["error"] > 0) { echo "Fehler: " . $_FILES["file"]["error"] . "<br>"; } else { echo "Upload-Dateiname: " . $_FILES["file"]["name"] . "<br>"; echo "Dateityp: " . $_FILES["file"]["type"] . "<br>"; echo "Dateiüssung: " . ($_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 "非法的文件格式"; } ?>
上面的脚本检测了文件是否已存在,如果不存在,则将文件复制到名为 "upload" 的目录下。
文件上传演示操作如下所示:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
声明:本文内容来源于网络,版权归原作者所有。内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:notice#oldtoolbag.com(在发邮件时,请将#更换为@进行举报,并提供相关证据。一经查实,本站将立即删除涉嫌侵权内容。)