Web 開発では、ブラウザーにファイルをローカルにダウンロードさせるのではなく、ブラウザーにファイルを表示することが必要な場合があります。このプロセスは PHP コードを通じて実行できます。この記事では、PHP を使用してブラウザーのダウンロードをオフにする方法について詳しく説明します。
HTTP ヘッダー ファイルは HTTP 要求と応答の一部であり、HTTP 応答に必要な情報が含まれています。 PHP の header 関数を使用して、ブラウザでファイルを開くように HTTP ヘッダー ファイルを設定できます。
次は、header 関数を使用して PDF ファイルをブラウザに表示する方法を示す簡単な例です。
<?php $file = 'sample.pdf'; header('Content-type: application/pdf'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
このコードは、最初に PDF ファイルを開き、次に header 関数を使用してHTTPヘッダードキュメントを設定します。このうち、Content-type は、応答コンテンツが PDF 形式であることをブラウザに伝えます Content-Disposition: inline は、ブラウザがページ内にファイルをインラインで表示できるようにします Content-Transfer-Encoding: binary は、ファイルがバイナリで転送されることを指定しますContent -Length は応答のデータ サイズを指定し、Accept-Ranges: bytes はサーバーがバイト範囲の要求をサポートすることを指定します。
最後に、関数 readfile を使用してファイルの内容を読み取り、ブラウザに HTML 形式で表示します。
PDF に加えて、ヘッダー関数を使用して、画像、オーディオ、ビデオなどの他のタイプのファイルを表示することもできます。 。 Content-type にファイルの種類を指定するだけです。
次に、いくつかの一般的なファイル タイプとその Content-type 値を示します。
ファイル タイプ | Content-type |
---|---|
画像 | image/jpeg、image/png、image/gif、image/bmp |
application/pdf | |
text/plain | |
オーディオ/mpeg、audio/ogg、audio/wav | |
video/mp4、video/ogg、video/webm |
<?php $file = 'sample.jpg'; header('Content-type: image/jpeg'); header('Content-Disposition: inline; filename="' . $file . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>#Download file
次は、ブラウザでファイルをダウンロードする方法を示す例です:
<?php $file = 'sample.zip'; $filename = 'download.zip'; header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Content-Length: ' . filesize($file)); header('Accept-Ranges: bytes'); @readfile($file); ?>
この例では、Content-Disposition ヘッダーを設定して、ブラウザにファイルをダウンロードするように指示します。 filename パラメーターは、ダウンロードされるファイルのファイル名を指定するために使用されます。
大きなファイルの処理次は、大きなファイルを処理する方法を示す例です:
<?php $file = 'bigfile.zip'; $filename = 'download.zip'; $chunksize = 4096; header('Content-type: application/zip'); header('Content-Disposition: attachment; filename="' . $filename . '"'); header('Content-Transfer-Encoding: binary'); header('Accept-Ranges: bytes'); header('Content-Length: ' . filesize($file)); $handle = fopen($file, 'rb'); while (!feof($handle)) { $buffer = fread($handle, $chunksize); echo $buffer; ob_flush(); flush(); } fclose($handle); ?>
この例では、毎回 4096 バイトのファイルの内容を読み取り、ブロックごとに出力します。ループ内で、ob_flush 関数と flash 関数を使用してバッファーの内容をブラウザーにプッシュしていることに注意してください。
概要: PHP を使用してブラウザのダウンロードをオフにする
この記事では、PHP を使用してブラウザのダウンロードをオフにする方法 (ファイルの表示、さまざまなファイル タイプの処理、ファイルのダウンロード、および大きなファイルやドキュメントの処理。この知識は Web 開発者にとって非常に重要ですので、この記事がお役に立てば幸いです。
以上がPHPを使用してブラウザのダウンロードを閉じる方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。