ホームページ >バックエンド開発 >PHPの問題 >PHPコードでファイルのダウンロードを実装する方法

PHPコードでファイルのダウンロードを実装する方法

藏色散人
藏色散人オリジナル
2020-08-05 10:29:382486ブラウズ

PHP では、ダウンロードするドキュメントの種類を指定する「header('Content-type: application/pdf');」というヘッダー メソッドを使用してファイルをダウンロードできます。

PHPコードでファイルのダウンロードを実装する方法

推奨事項: 「PHP ビデオ チュートリアル

ヘッダーからテキスト ファイルをダウンロードするための PHP コード

いわゆるテキスト ファイルのダウンロードとは、テキスト ファイルへのリンクをクリックすると、ファイルを開くのではなく、ダウンロード ダイアログ ボックスがポップアップしてダウンロードすることを意味します。

これは今日議論された主な問題です。ヘッダーを介して PHP がダウンロードをトリガーすることに関する PHP ヘルプ ドキュメントの指示は比較的単純ですが、インターネット上にはこの点に関する記事がほとんどなく、多くの記事では期待した効果が得られません。今日もこのテーマについてお話しさせていただきますが、ネット上の記事と比べて改善されていると感じていただければ大変満足です。

正確な観点から見ると、テキスト ファイルのダウンロードをトリガーするために必要な 3 つのステートメントが簡潔にリストされているため、PHP ドキュメントが最も正確です。PDF を例にとると、

コードは次のとおりです。 follow:

// We'll be outputting a PDF
header('Content-type: application/pdf');
// It will be called downloaded.pdf
header('Content-Disposition: attachment; filename="downloaded.pdf"');
// The PDF source is in original.pdf
readfile('original.pdf');

これらの 3 つの文は正しいですが、実際の使用中に予期せぬ問題が簡単に発生する可能性があります。非常に注意深い人であれば、問題を簡単に解決することもできます。これらの問題を回避するのは簡単です。しかし、私はそうではないので、このような問題に遭遇しました。

最初の文については何も言う必要はありません。必要です。ドキュメントの種類を変更するだけです。たとえば、txt ファイルをダウンロードしている場合は、header('Content-type : application/txt' );、2 番目の文はあまり意味がありません。ダウンロードしたドキュメントに名前を付けるだけです。txt ファイルの場合は、header('Content-Disposition:attachment; filename="downloaded .txt"'); 、3 番目の文にはさらに問題があります。 readfile 関数は、ファイルを読み取って出力することを意味します。ここでのファイルのパスは、実際のファイル パスである必要があります。ダウンロード フォルダーの場合は、 readfile('downloads/original.txt'); のように記述します。送信されたページがテキストやその他の文字を出力する場合、ダウンロードされるファイルは元のファイルoriginal.txtの混合ファイルになります。および送信されたページによって出力されるテキスト。ここで注意深い観察が足りませんでした。何かが間違っていることに気づいてすぐにコードを確認しましたが、上記のテキストが必要なものであることがわかりませんでした。コンテンツのこの部分を発見した後、あなたはすぐにどのように対処するかを考えるかもしれませんこの問題を解決するには、送信されたページのテキスト コンテンツの出力をオフにします。

この時点で、問題は解決され、テキスト ファイルのリンクがクリックされたときにダウンロード ダイアログ ボックスがトリガーされるという効果が得られます。

以上がPHPコードでファイルのダウンロードを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。