Aktueller Standort: Startseite> Neueste Artikel> Tutorial zum Hoch- und Herunterladen von PHP-Dateien: Erstellen Sie ein vollständiges Beispiel von Grund auf

Tutorial zum Hoch- und Herunterladen von PHP-Dateien: Erstellen Sie ein vollständiges Beispiel von Grund auf

M66 2025-10-09

PHP implementiert Datei-Upload- und Download-Funktionen

Bei der Website-Entwicklung sind das Hoch- und Herunterladen von Dateien sehr häufige Funktionen. Ob Bilder, Dokumente oder komprimierte Pakete, viele Websites bieten Eingänge zum Hoch- und Herunterladen. In diesem Artikel wird detailliert beschrieben, wie Sie mit PHP eine einfache Datei-Upload- und Download-Funktion schreiben, einschließlich HTML-Formularen, Upload-Logik und Download-Skripten.

Implementierung der Datei-Upload-Funktion

Zuerst müssen wir auf der Seite ein Formular erstellen, damit Benutzer Dateien auswählen und hochladen können:

 <form action="upload.php" method="post" enctype="multipart/form-data">
    <input type="file" name="file">
    <input type="submit" value="hochladen">
</form>

Im Code oben:

  • Das Aktionsattribut gibt das Verarbeitungsskript für die Formularübermittlung als upload.php an
  • Das Methodenattribut ist auf POST gesetzt
  • Das enctype- Attribut ist multipart/form-data und wird zur Unterstützung von Datei-Uploads verwendet

Schreiben Sie als Nächstes die Backend-Logik in die Datei upload.php :

 <?php
$targetDir = "uploads/"; // hochladen文件的存储目录
$targetFile = $targetDir . basename($_FILES["file"]["name"]); // hochladen后的文件路径

// Dateityp prüfen
$fileType = strtolower(pathinfo($targetFile, PATHINFO_EXTENSION));
$allowedTypes = array("jpg", "jpeg", "png", "gif");

if (!in_array($fileType, $allowedTypes)) {
    echo "只允许hochladen图片文件!";
    exit;
}

// Dateien in das angegebene Verzeichnis verschieben
if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFile)) {
    echo "文件hochladen成功!";
} else {
    echo "文件hochladen失败!";
}
?>

Der obige Code verschiebt die temporäre Datei über die Funktion move_uploaded_file() in den Zielordner und führt vor dem Hochladen eine Sicherheitsprüfung des Dateityps durch. In der tatsächlichen Entwicklung kann die Sicherheit weiter verbessert werden, z. B. durch Überprüfen der Dateigröße, zufälliges Umbenennen von Dateien usw.

Implementierung der Datei-Download-Funktion

Sobald die Datei hochgeladen ist, können wir auf der Seite eine Liste der zum Download verfügbaren Dateien anzeigen. Zum Beispiel:

 <?php
$files = glob("uploads/*"); // erhaltenuploadsAlle Dateien im Verzeichnis

foreach ($files as $file) {
    $fileName = basename($file);
    echo "<a href='download.php?file={$fileName}'>{$fileName}</a><br>";
}
?>

Der obige Code verwendet die Funktion glob(), um das Upload- Verzeichnis zu durchsuchen und für jede Datei einen anklickbaren Download-Hyperlink zu generieren.

Schreiben Sie dann die Download-Verarbeitungslogik in die Datei download.php :

 <?php
$fileName = $_GET["file"];
$filePath = "uploads/" . $fileName;

if (file_exists($filePath)) {
    header("Content-Type: application/octet-stream");
    header("Content-Disposition: attachment; filename={$fileName}");
    readfile($filePath);
} else {
    echo "Datei existiert nicht!";
}
?>

Das Skript prüft über file_exists() , ob die Datei vorhanden ist, und legt den Antwortheader fest, damit der Browser den Download auslösen kann. Um Sicherheitsproblemen vorzubeugen, wird empfohlen, der Produktionsumgebung Dateinamenfilterung und Berechtigungsüberprüfung hinzuzufügen.

Zusammenfassen

Anhand der Beispiele in diesem Artikel können Sie schnell die grundlegenden Methoden zur Implementierung von Datei-Upload- und Download-Funktionen in PHP beherrschen. Obwohl das Beispiel relativ einfach ist, eignet es sich sehr gut für Anfänger, um den Prozess der Dateiverarbeitung zu verstehen. In tatsächlichen Projekten kann es auf dieser Basis erweitert werden, z. B. durch Erhöhung der Dateigrößenbeschränkungen, Hochladen von Protokolldatensätzen, Berechtigungskontrolle usw., um die Sicherheit und Stabilität zu verbessern.