Heim > Backend-Entwicklung > PHP-Tutorial > Wie erzwinge ich Dateidownloads in PHP, ohne zum Browser umzuleiten?

Wie erzwinge ich Dateidownloads in PHP, ohne zum Browser umzuleiten?

DDD
Freigeben: 2024-10-20 20:02:30
Original
1012 Leute haben es durchsucht

How to Force File Downloads in PHP Without Redirecting to the Browser?

Download-Links in PHP generieren

Einführung

Benutzern die Möglichkeit zu geben, Dateien herunterzuladen, ist eine häufige Funktion im Web Anwendungen. Dieser Artikel führt Sie durch das Erstellen von Download-Links für Bilder und das Verhindern der Navigation zum Browser.

Lösung

Um einen Dateidownload zu erzwingen, können Sie den folgenden Code verwenden:

<code class="php"><?php
    // File path on disk
    $filePath = '/path/to/file/on/disk.jpg';

    // Check if file exists
    if(file_exists($filePath)) {
        $fileName = basename($filePath);
        $fileSize = filesize($filePath);

        // Output headers
        header("Cache-Control: private");
        header("Content-Type: application/stream");
        header("Content-Length: ".$fileSize);
        header("Content-Disposition: attachment; filename=".$fileName);
        
        // Output file
        readfile ($filePath);
        exit();
    } else {
        die('Invalid file path');
    }
?></code>
Nach dem Login kopieren

Durch die Verwendung dieses Codeausschnitts am Anfang einer PHP-Seite können Benutzer eine Datei herunterladen, indem sie auf einen normalen Link klicken.

Sicherheitsüberlegungen

Beim Erstellen einer Funktion zum Herunterladen beliebiger Dateien ist es wichtig, sich vor böswilligen Eingaben zu schützen. Setzen Sie Maßnahmen wie Realpath ein, um das Durchlaufen von Verzeichnissen zu verhindern und Downloads auf vorgegebene Speicherorte zu beschränken, um die Website-Sicherheit zu gewährleisten.

Das obige ist der detaillierte Inhalt vonWie erzwinge ich Dateidownloads in PHP, ohne zum Browser umzuleiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
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