【发布时间】:2016-03-06 09:18:42
【问题描述】:
试图从 laravel 中的 brochure/jan-2016.pdf', 'BrochureController@show'); 路径查看存储在 /public/assets/others/brochure/jan-2016.pdf 文件中的 pdf。
但我得到错误:Whoops, looks like something went wrong
路线代码:
Route::get('/brochure/{file}', 'BrochureController@show');
在控制器中:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class BrochureController extends Controller
{
public function show($filename)
{
$filename = 'jan-2016.pdf';
$filepath = 'assets/others/brochure/';
$path = $filepath.$filename;
return Response::make(file_get_contents($path), 200, [
'Content-Type' => 'application/pdf',
'Content-Disposition' => 'inline; '.$filename,
]);
}
}
当我尝试仅打印文件内容时,它会捕获文件并使用file_get_contents($path)以某种奇怪的方式显示
输出: %PDF-1.4 %���� 1 0 obj <>stream PScript5.dll Version 5.2.2 GVTP January 2016 Dummy content endstream endobj 2 0 obj <> endobj 4 0 obj <> endobj 3 0 obj <> endobj 5 0 obj <>/Rotate 90/Parent 3 0 R/MediaBox[0 0 595 842]/Contents 11 0 R/Type/Page>> endobj 11 0 obj <>stream x��]Ys�u.;����8Ξ��d���z_�'�Z���Iت�� �$����_��oN�L�9=sw@��-...
这意味着它从确切的路径中选择文件。我相信指定读者将其作为第三方服务处理,例如:Adobe pdf 阅读器。
我做错了什么?
【问题讨论】:
-
您说您的路线是
Route::get('/view/{event}', 'PdfController@show');,那么您能否提供完整的show()方法,以便我了解您是如何使用事件变量的?它可能被用于文件名吗? -
是的@Joseph,我故意更改了名称,但现在它与我在项目中的名称完全相同。请看一下