ラボ > PHP:ファイル関連

PHP ファイルをブラウザで表示(header()、readfile())

画像やpdfをブラウザで表示したい

作成日:2018-07-13, 更新日:2019-12-14

基本

特別な理由が無い限りHTMLタグを使えばいい。
画像ならimgタグ。PDFなら直リンでいいんじゃないかな。

HTMLタグを使わずにブラウザに出力する場合

▼サンプル

$path = ファイルのPATH;
$mime = mimeタイプ;

header('Content-Type: ' . $mime);
readfile($path);

※前後に何かを出力するとエラーになったりするかも。「readfile()」の次は「exit()」にして終わらせておくのが良さげ。

画像を表示

$path = 画像のPATH;
$mime = 'image/jpeg'; // 画像のmimeタイプ(「.jpg」の場合)

header('Content-Type: ' . $mime);
readfile($path);

※「MIMEタイプ」に色々とメモった。

PDFを表示

$path = PDFのPATH;
$mime = 'application/pdf'; // PDFのmimeタイプ

header('Content-Type: ' . $mime);
readfile($path);

メモ

「Content-Disposition」を設定するっていうのもあったりする。ひとまずメモ。
※ブラウザで表示して、その後、ブラウザからダウンロードさせるときのファイル名を指定する。

$fileName = ダウンロード時のファイル名;
$path = ファイルのPATH;
$mime = mimeタイプ;

header('Content-Type: ' . $mime);
header('Content-Disposition: inline; filename="' . $fileName . '"');
header('Content-Length: ' . filesize($path));
readfile($path);

※「Content-Disposition: inline;」を「Content-Disposition: attachment;」に変更するとダウンロードになる

関連項目

MIMEタイプ
PHPでファイルをダウンロード