Die Anweisungen im PHP-Hilfedokument zum Auslösen von Downloads durch PHP über Header sind relativ einfach, und es gibt nur sehr wenige Artikel zu diesem Aspekt im Internet, und viele Artikel können nicht den gewünschten Effekt erzielen. Heute werde ich auch über dieses Thema sprechen. Wenn Sie das Gefühl haben, dass es im Vergleich zu einigen Artikeln im Internet verbessert wurde, bin ich sehr zufrieden.
Aus genauer Sicht ist das PHP-Dokument das genaueste, da es die drei Anweisungen, die zum Auslösen des Downloads von Textdateien erforderlich sind, kurz und bündig auflistet: Am Beispiel von PDF
folgt der zitierte Inhalt:
// Wir geben einen PDF-
Header aus ('Content-type: application/pdf');
// Er wird heruntergeladen.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// Die PDF-Quelle befindet sich in original.pdf
readfile('original.pdf');
Diese drei Sätze sind richtig, aber bei der tatsächlichen Verwendung können leicht unvorhergesehene Probleme auftreten. Wenn Sie eine sehr vorsichtige Person sind, können Sie diese Probleme leicht vermeiden. Aber ich bin nicht auf ein solches Problem gestoßen. Hier werde ich kurz über mein Problem sprechen.
Zum ersten Satz sollte es nichts zu sagen geben. Es ist lediglich erforderlich, den Typ des Dokuments zu ändern. Wenn Sie beispielsweise eine TXT-Datei herunterladen, ändern Sie ihn in header('Content-type: application/txt'). );. Der zweite Satz Es gibt nichts zu sagen, geben Sie Ihrem heruntergeladenen Dokument einfach einen Namen. Wenn es sich um eine TXT-Datei handelt, können Sie ihn in header('Content-Disposition: attachment; filename="downloaded.txt"') ändern. ;, die dritte Satzfrage Es gibt noch mehr. Die Funktion readfile bedeutet, dass der Pfad der Datei hier der tatsächliche Dateipfad sein muss kann readfile('downloads/original.txt'); schreiben, und wenn die übermittelte Seite Text und andere Zeichen ausgibt, ist die heruntergeladene Datei eine gemischte Datei aus der Originaldatei original.txt und dem von der übermittelten Seite ausgegebenen Text. Mir mangelte es hier an sorgfältiger Beobachtung. Sobald ich sah, dass etwas nicht stimmte, überprüfte ich sofort den Code, stellte jedoch fest, dass der obige Text nicht das war, was ich brauchte Dieses Problem besteht darin, die Ausgabe des Textinhalts der übermittelten Seite zu deaktivieren. An diesem Punkt ist das Problem gelöst und das Download-Dialogfeld wird ausgelöst, wenn auf den Link zur Textdatei geklickt wird.