在Cakephp中查看PDF文件

时间:2013-02-19 06:30:33

标签: cakephp

我试图在上传后查看我的cakephp应用程序正文中的PDF文件,更像是iframe。上传工作正常,但我现在面临的挑战是打开pdf文件。

这是我的控制器中的上传功能正常工作

function uploadFile() {
$file = $this->data['QmsProcedureKnowledgeManagement']['file'];
if ($file['error'] === UPLOAD_ERR_OK) {
$id = String::uuid();
if (move_uploaded_file($file['tmp_name'], APP . 'qms_procedure_km/' . $file['name'])) {
$this->request->data['QmsProcedureKnowledgeManagement']['filename'] = $file['name'];
$this->request->data['QmsProcedureKnowledgeManagement']['filesize'] = $file['size'];
$this->request->data['QmsProcedureKnowledgeManagement']['filemime'] = $file['type'];
return true;
}
}
return false;
}

以下是我试图在view.ctp

中查看pdf的方法
<?php echo $this->Html->link(APP.'qms_procedure_km/'. $qmsProcedureKnowledgeManagement['QmsProcedureKnowledgeManagement']['filename']); ?>

提前谢谢

1 个答案:

答案 0 :(得分:0)

无法从网络浏览器直接访问APP . 'qms_procedure_km/'内的任何文件。这是设计的。

如果您希望任何人可以使用URL访问PDF,您只需将文件存储在可以从Web浏览器直接访问 的位置(例如WWW_ROOT . 'qms_procedure_km/')。

如果您希望仅对某些人(例如,已登录的用户)访问PDF,则应继续将文件存储在无法从Web浏览器直接访问的位置,但是您需要编写一个控制器操作,该操作将确定允许用户查看PDF,然后使用CakeResponse::file()(CakePHP&gt; = 2.3.0)或Media Views将其显示给他们( CakePHP&lt; 2.3.0)。