Ответ Матеуса хорошо описывает, как настроить функцию контроллера для возврата файла PDF.Я хотел бы сделать что-то подобное в вашем /routes/web.php
файле:
Route::get('/show-pdf/{id}', function($id) {
$file = YourFileModel::find($id);
return response()->file(storage_path($file->path));
})->name('show-pdf');
Другая часть вашего вопроса - как встроить PDF в ваш *.blade.php
шаблон представления.Для этого я рекомендую использовать PDFObject .Это очень простой пакет JavaScript для просмотра PDF, который облегчает встраивание PDF.
Если вы используете npm
, вы можете запустить npm install pdfobject -S
для установки этого пакета.В противном случае вы можете обслужить его с CDN или разместить скрипт самостоятельно.После включения сценария вы настраиваете его следующим образом:
HTML :
<div id="pdf-viewer"></div>
JS :
<script>
PDFObject.embed("{{ route('show-pdf', ['id' => 1]) }}", "#pdf-viewer");
</script>
И все - супер просто!И, на мой взгляд, он обеспечивает более приятный пользовательский интерфейс для пользователей, чем переход на страницу, на которой показан сам PDF.Я надеюсь, что вы найдете это полезным!
ОБНОВЛЕНИЕ: Прочитав ваши комментарии к другому ответу, я подумал, что вы могли бы найти этот пример особенно полезным для чегоВы пытаетесь сделать.