0

上传后,我试图在我的 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']); ?>

先感谢您

4

1 回答 1

0

您拥有的任何文件都APP . 'qms_procedure_km/'无法从网络浏览器直接访问。这是设计使然。

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

如果您希望 PDF 仅供某些人(例如登录的用户)访问,您应该继续将文件存储在无法从 Web 浏览器直接访问的位置,但您需要编写控制器操作这将确定允许用户查看 PDF,然后使用CakeResponse::file()(CakePHP >= 2.3.0) 或媒体视图(CakePHP < 2.3.0) 将其显示给他们。

于 2013-02-19T06:41:22.453 回答