あなたがそれについて考えるとき、 ウェブブラウザは複雑なプログラミングの驚くべき偉業です。 彼らは、私たちの日々の生活の一部であるツールです - 友人や家族の状況をチェックすること、それらの人々とコミュニケーションすること、購入すること、ビデオを見ること、財政的な生活を世話することなどもっと。 ブラウザーが私たちの生活の中で普及しているように、現実は、ほとんどの人が本当にどれほど有用であるかを理解していないということです。
シーンの裏側
ブラウザの背後で行うことの1つは、ブラウジングセッション中に人が行うすべてのクリックを実際に行うようにすることです。 これは、Webブラウザで直接閲覧できるように、ますます多くのファイルタイプを開くことができることを意味します。
たいていの場合、これは良いことです。読んでいる文書へのリンクをクリックしてからダウンロードし、最後にコンピュータで開くまで待つ必要があります。 あなたがこのダウンロードを待っているときにその欲求不満は次のレベルに達し、あなたが文書を開く正しいプログラムを持っていないことを発見するだけです。 最近では、ブラウザーが実際に文書を直接インラインで表示するため、ほとんど発生しません。 たとえば、PDFファイルはデフォルトでダウンロードされません。 代わりに、Webページがどのように表示されるかと同様に、Webブラウザに直接表示されます。
人々がウェブブラウザで直接見るのではなく、ダウンロードしたいファイルを持っている場合はどうでしょうか?
HTMLファイルまたはPDFの場合は、そのドキュメントへのリンクを投稿するだけでは、ウェブブラウザでこれらのドキュメントを自動的に開き、それらをインラインで表示するためです。 これらのファイルを人のコンピュータにダウンロードするには、代わりにPHPを使用してトリッキーを行う必要があります。
PHPでは、書いているファイルのHTTPヘッダーを変更することができます。
このプロセスにより、通常はブラウザが同じウィンドウにロードするファイルを強制的にダウンロードできるようになります。 PDF、ドキュメントファイル、画像、ビデオなど、ブラウザからオンラインで直接ダウンロードするのではなく、ダウンロードしたいファイルに最適です。
ファイルをホストするWebサーバー、ダウンロードするファイル、問題のファイルのMIMEタイプにPHPが必要です。
これを行う方法
- ダウンロード可能にしたいファイルをWebサーバーにアップロードします。 たとえば、ユーザーがリンクをクリックしたときにダウンロードされるPDFファイルがあるとします。 まず、そのファイルをWebサイトのホスティング環境にアップロードします。
huge_document.pdf
- Webエディタで新しいPHPファイルを編集する - 使いやすいように、ダウンロードしたファイルと同じ名前を付け、拡張子.phpだけを付けておくことをおすすめします。 例えば:
huge_document.php
- ドキュメントでPHPブロックを開きます。
<?php
- 次の行で、HTTPヘッダーを設定します。
ヘッダー( "Content-disposition:attachment; filename = huge_document.pdf");
- 次に、ファイルのMIMEタイプを設定します。
ヘッダー( "Content-type:application / pdf");
- ダウンロードしたいファイルをポイントします:
readfile( "huge_document.pdf");
- 次に、PHPブロックを閉じてファイルを保存します。
?>
- あなたのPHPファイルは次のようになります:
<?php
ヘッダー( "Content-disposition:attachment; filename = huge_document.pdf");
ヘッダー( "Content-type:application / pdf");
readfile( "huge_document.pdf");
?> - WebページからダウンロードリンクとしてPHPファイルにリンクします。 例えば:
私の巨大な文書をダウンロードする(PDF) a
ファイル内にスペースやキャリッジリターンを入れないでください(セミコロンの後を除く)。 空行の場合、PHPはMIMEタイプtext / htmlにデフォルト設定され、ファイルはダウンロードされません。