【发布时间】:2019-02-21 10:41:31
【问题描述】:
我正在使用gridfs 在 MongoDB 中存储文件。当我尝试在浏览器中显示保存在gridfs 中的大pdf 文件时遇到问题。大文件不会显示在浏览器中,但小文件会。
这是服务代码
public function getIpFileByFileId() {
$request = $this->request;
$dm = $this->container->get('doctrine_mongodb')->getManager('patient');
$id = $request->get('fileId');
//get doc
$docIpMapping = $dm->getRepository('PatientDocumentsBundle:IPDocuments')->findOneBy([
'id' => $id
]);
$base64 = (base64_encode($docIpMapping->getFile()->getBytes()));
$response['data'] = $base64;
$response['msg'] = 'success';
return $response;
}
这是前端代码
Ajax(path, data).success(function (result) {
$("#pdfDiv").html('<iframe style="width:100%;height:500px;" src="data:application/pdf;base64,' + result.data + '"></iframe>');
});
代码有问题吗?如何在前端显示大文件?
【问题讨论】:
-
为什么不通过您的操作直接在您的网址中创建一个网址,这可能更简单:myurl.com/pdf/my-super-pdf.pdf ?
-
@Flug 如果我将文件显示为 .pdf url,那么我需要将服务器中的文件另存为 pdf,是否有任何选项可以显示为 .pdf url 而无需在服务器中保存文件?
-
你可以用你的答案和 pdf 内容类型制作一个 pdf 视图。您可以动态执行此操作,而无需将其存储在您的服务器上
标签: php jquery mongodb symfony gridfs