我已经使用存储API存储了我的PDF文件。要让浏览器读取PDF,我可以使用响应::make(),但是我使用pdfObject jquery库来显示它嵌入。问题是,在使用图书馆时,我必须提供pdf的网址:
var pdf = new PDFObject({
url: **"THE URL TO THE PDF",**
pdfOpenParams: {
navpanes: 0,
toolbar: 0,
statusbar: 0,
view: "FitV"
}
如何将安全存储的PDF的URL提供给库?任何帮助都很感激!
发布于 2015-08-10 09:32:33
您可以做一个新的“加载器”控制器,您可以从其中返回一个pdf头与所需的文件。然后,不要直接调用文件,而是将其加密后的名称作为参数传递给控制器,并将其解码到内部:
var pdf = new PDFObject({
url: "site.com/controller/method/<?php Crypt::encrypt('filename.pdf') ?>",
//...
}
主计长:
Route::get('/controller/method/{filename}', function($filename) {
// Laravel is ignoring the header method and is sending a plain html/txt :(
// So a normal php header can do the workaround
header("Content-type: application/pdf");
$filename = '/url/to/pdf/' . Crypt::decrypt($filename);
$response = Response::make(readfile($filename), 200);
$response->header('Content-Type', 'application/pdf');
return $response;
});
Laravel代码没有经过测试,而且很可能不起作用(我对它有点生疏),我用纯PHP进行了测试,但它成功了。
https://stackoverflow.com/questions/31924778
复制