目的
- laravelを構成するファイルのローカルに保存されているPDFファイルをブラウザ表示させる方法をまとめる
環境
- ハードウェア環境
項目 | 情報 |
---|---|
OS | macOS Catalina(10.15.5) |
ハードウェア | MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports) |
プロセッサ | 2 GHz クアッドコアIntel Core i5 |
メモリ | 32 GB 3733 MHz LPDDR4 |
グラフィックス | Intel Iris Plus Graphics 1536 MB |
- ソフトウェア環境
項目 | 情報 | 備考 |
---|---|---|
PHP バージョン | 7.4.8 | Homebrewを用いてこちらの方法で導入→Mac HomebrewでPHPをインストールする |
Laravel バージョン | 6.X | commposerを用いてこちらの方法で導入→Mac Laravelの環境構築を行う |
情報
- 下記の方法で「view_pdf_app」を作成した。
- この記事を書く際に検証用に記載したソースをGithubにて公開する。
方法1 asset()
とredirect()
を用いる
-
PDFファイルの設置
- 下記ディレクトリに「01_file.pdf」を設置する。(※ファイル名が同じPDFファイルなら内容は何でも良い。)
view_pdf_app/storage/app/public/pdf/01_file.pdf
- 下記ディレクトリに「01_file.pdf」を設置する。(※ファイル名が同じPDFファイルなら内容は何でも良い。)
-
ルーティングの記載
-
ルーティングファイルを編集して下記のように記載する。
view_pdf_app/routes/web.php<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PdfController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('/pdf/redirect', [PdfController::class, 'showRedirect'])->name('pdf.show.redirect');
-
-
コントローラーファイルの作成と記載
-
下記コマンドをview_pdf_appディレクトリで実行する。
$ php artisan make:controller PdfController
-
作成したコントローラーファイルを編集して下記のように記載する。
view_pdf_app/app/Http/Controllers/PdfController.php<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PdfController extends Controller { /** * リダイレクトを用いてPDFを表示する * * @return redirect|file_url */ public function showRedirect() { return redirect(asset('pdf/01_file.pdf')); } }
-
-
ローカルサーバーを起動して下記にアクセスする。
-
PDFファイルがブラウザで表示される。
方法2 storage_path()
とresponse()
を用いる
-
PDFファイルの設置
- 下記ディレクトリに「01_file.pdf」を設置する。(※ファイル名が同じPDFファイルなら内容は何でも良い。)
view_pdf_app/storage/app/public/pdf/01_file.pdf
- 下記ディレクトリに「01_file.pdf」を設置する。(※ファイル名が同じPDFファイルなら内容は何でも良い。)
-
ルーティングの記載
-
ルーティングファイルを編集して下記のように記載する。
view_pdf_app/routes/web.php<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PdfController; /* |-------------------------------------------------------------------------- | Web Routes |-------------------------------------------------------------------------- | | Here is where you can register web routes for your application. These | routes are loaded by the RouteServiceProvider within a group which | contains the "web" middleware group. Now create something great! | */ Route::get('/', function () { return view('welcome'); }); Route::get('/pdf/request', [PdfController::class, 'showRequest'])->name('pdf.show.request');
-
-
コントローラーファイルの作成と記載
-
下記コマンドをview_pdf_appディレクトリで実行する。
$ php artisan make:controller PdfController
-
作成したコントローラーファイルを編集して下記のように記載する。
view_pdf_app/app/Http/Controllers/PdfController.php<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class PdfController extends Controller { /** * リクエストを用いてPDFを表示 * * @return response */ public function showRequest() { return response()->file(storage_path('app/public/pdf/01_file.pdf')); } }
-
-
ローカルサーバーを起動して下記にアクセスする。
-
PDFファイルがブラウザで表示される。