ホームページ >バックエンド開発 >PHPチュートリアル >PHP は header_PHP チュートリアルを通じてテキスト ファイルをダウンロードします
いわゆるテキスト ファイルのダウンロードとは、テキスト ファイルへのリンクをクリックすると、ファイルを開く代わりにダウンロード ダイアログ ボックスが表示され、ダウンロードすることを意味します。これが今日議論する主な問題です。ヘッダーを介して PHP がダウンロードをトリガーすることに関する PHP ヘルプ ドキュメントの指示は比較的単純ですが、インターネット上にはこの点に関する記事がほとんどなく、多くの記事では期待した効果が得られません。今日もこのテーマについてお話しますが、インターネット上のいくつかの記事と比較して改善されていると感じていただければ、私は非常に満足しています。 6}g> o %P
正確な観点から見ると、PHP ドキュメントはテキスト ファイルのダウンロードをトリガーするために必要な 3 つのステートメントを簡潔にリストしているため、最も正確です。 [xR .p // それは、downloaded.pdf
r Wf{=P k' header('Content-Disposition:attachment; filename="downloaded.pdf"');
HOAw :*Z{ と呼ばれます。 > // PDF ソースは、original.pdf
J4 Q SC1 readfile('original.pdf');
0pc* r4R@
<| この 3 つの文は正しいですが、非常に注意深い人であれば、実際の使用中に予期せぬ問題が簡単に発生する可能性があります。しかし、私はそうではないので、そのような問題に遭遇しました。ここで私の問題について簡単に話します。
1 xra a7 最初の文については、何も言う必要はありません。必要なのは、ドキュメントの種類を変更することだけです。たとえば、txt ファイルをダウンロードする場合は、それを header('Content- type: application /txt'); の 2 番目の文はあまり意味がありません。ダウンロードしたドキュメントに名前を付けるだけです。それが txt ファイルの場合は、header('Content-Disposition:attachment; filename=) に変更できます。 download.txt" ');、3番目の文にはさらに問題があります。readfile関数はファイルを読み取って出力することを意味します。ここでのファイルのパスは実際のファイルパスである必要があります。original.txtファイルの場合ダウンロードフォルダーの下に、次のように readfile('downloads/original.txt'); と書くと、送信されたページにテキストとその他の文字が出力される場合、ダウンロードされるファイルは元のファイルoriginal.txtの混合ファイルになります。および送信されたページによって出力されるテキスト。ここで私は注意深い観察を欠いており、何かが間違っていることに気づいてすぐにコードをチェックしましたが、内容のこの部分を発見した後、すぐに解決方法を思いつくかもしれません。この問題は、送信されたページのテキストコンテンツの出力をオフにすることです。
i-z7 i;I
.FRO|}}
Wr#r? DhI この時点で、問題は解決され、テキスト ファイルのリンクが表示されます。クリックすると、ダウンロード ダイアログ ボックスが表示されます。引き金になった。
http://www.bkjia.com/PHPjc/364127.htmlwww.bkjia.com