Mit der Entwicklung des Internetzeitalters spielt das Hochladen von Dateien eine sehr wichtige Rolle bei der Website-Entwicklung. Wenn Benutzer ihre eigenen Avatare, Fotos oder andere Dateien hochladen müssen, muss die Website die hochgeladenen Dateien verarbeiten. In PHP7.0 unterscheidet sich die Art und Weise, wie das Hochladen von Dateien gehandhabt wird, geringfügig von früheren Versionen. In diesem Artikel wird erläutert, wie Sie die Datei-Upload-Verarbeitung in PHP7.0 durchführen.
1. HTML-Formular zum Hochladen von Dateien
Im HTML-Formular wird das Tag verwendet. Sie müssen das enctype-Attribut auf „multipart/form-data“ setzen und die Übermittlungsmethode ist die POST-Methode, zum Beispiel:
<form action="upload.php" method="POST" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" value="上传文件"> </form>
2. PHP verarbeitet hochgeladene Dateien
In PHP verwenden Sie das Array $_FILES, um den Upload durchzuführen Dateien. Wenn der Benutzer eine Datei auswählt und das Formular absendet, enthält das Array $_FILES Informationen über die hochgeladene Datei. Zum Beispiel:
$_FILES['file']['name'] // 文件名 $_FILES['file']['type'] // 文件类型 $_FILES['file']['size'] // 文件大小 $_FILES['file']['tmp_name'] // 临时文件名 $_FILES['file']['error'] // 错误代码
wobei der temporäre Dateiname verwendet wird, um den Inhalt der hochgeladenen Datei zu lesen, nachdem der Upload abgeschlossen ist. Als Nächstes besprechen wir, wie Sie diese Informationen zum Hochladen von Dateien verwenden.
3. Laden Sie die Datei hoch und speichern Sie sie auf dem Server
Mit der Funktion move_uploaded_file() können Sie die hochgeladene Datei aus dem temporären Ordner in den angegebenen Zielordner verschieben. Zum Beispiel:
$target_dir = "uploads/"; // 目标文件夹 $target_file = $target_dir . basename($_FILES["file"]["name"]); // 目标文件路径 if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) { echo "文件上传成功"; } else { echo "文件上传失败"; }
Beachten Sie, dass Sie vor dem Empfang der hochgeladenen Datei sicherstellen müssen, dass der Zielordner vorhanden ist, da sonst die Funktion move_uploaded_file() fehlschlägt.
4. Fehler bei der Verarbeitung hochgeladener Dateien
Beim Hochladen von Dateien können einige Fehler auftreten, z. B. wenn die hochgeladene Dateigröße die vereinbarte Größe überschreitet, ein Upload-Fehler usw. Wir können das Fehlerattribut im Array $_FILES verwenden, um diese Fehler zu behandeln.
switch ($_FILES["file"]["error"]) { case UPLOAD_ERR_OK: // 成功 break; case UPLOAD_ERR_INI_SIZE: // 上传的文件超过了php.ini中的最大约束大小 case UPLOAD_ERR_FORM_SIZE: // 上传的文件超过了HTML表单中的最大约束大小 echo "文件太大"; break; case UPLOAD_ERR_PARTIAL: // 文件只有部分被上传 echo "文件上传失败"; break; case UPLOAD_ERR_NO_FILE: // 没有文件被上传 echo "请选择文件"; break; case UPLOAD_ERR_NO_TMP_DIR: // 服务器未配置临时目录 case UPLOAD_ERR_CANT_WRITE: // 无法将文件写入磁盘 case UPLOAD_ERR_EXTENSION: // 文件不能通过PHP扩展上传 echo "文件上传失败"; break; }
5. Überprüfen Sie den Typ und die Größe der hochgeladenen Dateien.
Um das illegale Hochladen von Dateien zu verhindern, müssen wir auch den Typ und die Größe der hochgeladenen Dateien überprüfen. Wenn beispielsweise nur Dateien vom Typ Bild hochgeladen werden dürfen, können Sie die Funktion getimagesize() verwenden, um den Dateityp zu bestimmen.
$allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); $type = exif_imagetype($_FILES["file"]["tmp_name"]); if (!in_array($type, $allowed_types)) { echo "请选择正确的图像类型"; }
Gleichzeitig muss die Dateigröße überprüft werden, um die Dateigröße zu ermitteln, zum Beispiel:
$max_size = 2 * 1024 * 1024; // 允许上传最大文件大小为2MB if (filesize($_FILES["file"]["tmp_name"]) > $max_size) { echo "文件太大"; }
6. In PHP7.0 erfolgt die Datei-Upload-Verarbeitung werden sicherer und einfacher. Sie können Informationen zu hochgeladenen Dateien über das Array $_FILES abrufen, die Funktion move_uploaded_file() verwenden, um die Datei auf dem Server zu speichern, und den Typ und die Größe der hochgeladenen Datei überprüfen, um sicherzustellen, dass die hochgeladene Datei sicher und zuverlässig ist.
Das obige ist der detaillierte Inhalt vonWie führe ich die Datei-Upload-Verarbeitung in PHP7.0 durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!