Aktueller Standort: Startseite> Neueste Artikel> Implementieren Sie die Download-Schaltfläche: Das Front-End löst die Anfrage aus, und das Back-End verwendet Header (), um die Datei zu drücken

Implementieren Sie die Download-Schaltfläche: Das Front-End löst die Anfrage aus, und das Back-End verwendet Header (), um die Datei zu drücken

M66 2025-06-05

Datei -Download ist eine der häufigsten Anforderungen in Webanwendungen. Über die Funktion von PHP () können Sie Dateien in den Browser drücken und den Download -Operation des Benutzers auslösen. In diesem Artikel wird detailliert eingeführt, wie die Funktion "Datei-Download" über die Funktion "Header () von PHP () implementiert wird, und erklärt, wie die Front-End-Anforderungen ausgelöst werden und wie das Back-End die Funktion Header () verwendet, um Dateien in den Browser zu drücken.

Wie löste ich die Datei-Download-Anfrage im Front-End aus?

Im Front-End können wir HTML- oder JavaScript verwenden, um Datei-Download-Anforderungen zu lösen. Der einfachste Weg ist, den Download durch Klicken auf einen Link auszulösen. Normalerweise verwenden wir das A -Tag, um einen Link zu definieren und HREF , um die URL der Datei anzugeben.

 <a href="http://m66.net/download.php?file=example.txt" download>Klicken Sie hier, um die Datei herunterzuladen</a>

Nachdem der Benutzer auf den Link geklickt hat, fordert der Browser die Datei download.php an und übergibt die Dateiparameter (z. B. Datei = Beispiel.txt ) über GET -Anforderung an das Backend -PHP -Skript.

Darüber hinaus können Sie auch dynamische Downloads von Dateien über JavaScript auslösen, z. B.:

 function downloadFile() {
    const xhr = new XMLHttpRequest();
    xhr.open("GET", "http://m66.net/download.php?file=example.txt", true);
    xhr.responseType = "blob"; // Gibt an, dass die zurückgegebenen Daten eine binäre Datei sind
    xhr.onload = function() {
        const blob = xhr.response;
        const link = document.createElement('a');
        link.href = URL.createObjectURL(blob);
        link.download = 'example.txt'; // Legen Sie den heruntergeladenen Dateinamen fest
        link.click(); // Auslösen klicken,Laden Sie die Datei herunter
    };
    xhr.send();
}

Dieses JavaScript fordert die Datei über AJAX an und verwendet das BLOB -Objekt, um einen Datei -Download -Link zu erstellen, der dann den Download automatisch auslöst.

Wie drücke ich Dateien mit Header () im Backend?

In PHP wird die Header () -Funktion zum Senden von RAW -HTTP -Header -Informationen verwendet. Durch die Funktion Header () können wir den Browser anweisen, eine Datei herunterzuladen. Die spezifischen Operationen sind wie folgt:

  1. Stellen Sie zunächst sicher, dass Sie die Existenz der Datei überprüft haben.

  2. Legen Sie die entsprechenden Headertyp- und Inhaltsdispositions-Header ein, um dem Browser mitzuteilen, wie die Datei verarbeitet wird.

  3. Verwenden Sie ReadFile () oder andere Methoden, um den Dateiinhalt in den Browser auszugeben.

 <?php
// download.php

// Dateinamen Parameter abrufen
$file = isset($_GET['file']) ? $_GET['file'] : '';
$filePath = '/path/to/files/' . $file; // Stellen Sie den absoluten Pfad zur Datei fest

// Überprüfen Sie, ob die Datei vorhanden ist
if (file_exists($filePath)) {
    // Stellen Sie den Antwortheader ein,告知浏览器Laden Sie die Datei herunter
    header('Content-Type: application/octet-stream');  // Gilt für alle Dateitypen
    header('Content-Disposition: attachment; filename="' . basename($filePath) . '"');  // Download erzwingen und den Dateinamen angeben
    header('Content-Length: ' . filesize($filePath)); // Dateigröße
    header('Cache-Control: no-cache, no-store, must-revalidate'); // Cache deaktivieren
    header('Pragma: no-cache');
    header('Expires: 0');

    // Dateiinhalt ausgeben
    readfile($filePath);
    exit;
} else {
    echo 'Datei existiert nicht oder Pfad ist falsch!';
}
?>

In diesem PHP -Beispiel erhalten wir zuerst die Dateiparameter in der URL (z . B. txt ) übergeben und dann die Datei nach dem Dateipfad nachschlagen. Wenn die Datei vorhanden ist, setzen wir den Datei -Download -Typ und andere Informationen über Header () und verwenden dann ReadFile () , um den Dateiinhalt auszugeben, und erkennen schließlich den Download der Datei.

Code Parsen:

  • Header ('Inhaltstyp: Anwendung/Oktett-Stream') : Legen Sie den Dateityp auf einen Binärstrom ein. Verwenden Sie für alle Arten von Dateien die Anwendung/den Oktettstrom als allgemeiner MIME-Typ.

  • Header ('Inhaltsdisposition: Anhang; Dateiname = "Dateiname"') : Setzen Sie den Browser, um die Datei beim Empfangen der Antwort als Anhang herunterzuladen, und weisen Sie der Datei einen Dateinamen zu. Der Dateiname kann über BasiName () erhalten werden.

  • Header ('Inhaltslänge:'. FileSize ($ filepath)) : Legt die Dateigröße fest. Dies ist besonders wichtig für große Dateien, und Browser können den Download -Fortschritt basierend auf diesen Informationen schätzen.

  • ReadFile ($ filepath) : Diese Funktion liest die Datei und gibt sie direkt an den Browser aus.

  • Ausfahrt; : Nachdem Sie den Dateiinhalt ausgegeben haben, rufen Sie Beenden auf. Beendet die Skriptausführung, um unnötige Ausgabe oder Antwort zu vermeiden.

Zusammenfassen

Durch die Verwendung von PHPs Header () -Funktion und kombiniert mit geeigneten HTTP -Header -Einstellungen kann die Datei -Download -Funktion implementiert werden. Im vorderen Ende fordert der Benutzer die Datei an, indem er auf den Link klickt oder eine AJAX -Anforderung auslöst. Im hinteren Ende setzt PHP den richtigen Antwortheader durch die Funktion Header () und drückt dann den Dateiinhalt zum Download in den Browser. Auf diese Weise können Sie Ihre Webanwendung problemlos Datei -Download -Funktionen hinzufügen.