【发布时间】:2017-10-04 15:10:18
【问题描述】:
我有问题。这是我的php代码:
include "connection.php";
$patternJPG = '/.pdf$/i';
$gfs = $db->getGridFS();
$collection=$db->Children;
$selected = array('_id'=> new MongoId($_GET['id']));
$cursor=$collection->find($selected);
foreach($cursor as $b){
$id1 = $b["photoID"];
$criteria = array("_id" => New MongoId ($id1));
$nameOriginal = $gfs->findOne($criteria)->file['filename'];
if(preg_match($patternJPG, $nameOriginal)){
$row = $gfs->findOne($criteria)->getBytes();
$mimeType = 'Content-type: application/pdf';
header("Content-Length: " . strlen($row));
header($mimeType);
ob_end_clean();
flush();
echo($row);
}
}
此代码在 Windows 平台上确实有效。当我尝试在 mac 上运行该代码时,它不起作用。我认为代码应该在所有平台上运行。因为一直以来,我从来没有发现过这样的问题。我有适用于 Windows 的代码,该代码也适用于 mac。请有人帮我解决这个问题。
【问题讨论】:
-
尚不清楚究竟是什么不起作用。是不是当您从 Safari 打开 URL 时,您无法下载 PDF 文件?它在 Windows 上是如何工作的?
-
它在 windows 上工作,例如显示 pdf,并且有下载、打印等工具。但是,它在 mac 上不起作用,因为它只显示抽象字母,如 64 位编码也许吧。
-
Mac上有PDF插件吗?
-
我没有 pdf 插件。 Windows 上不需要任何东西。我认为在 mac 上会自动工作?或者如果你想在 mac 浏览器上显示 pdf,需要 pdf 插件? @JeroenHeier
-
它可以在 Safari 上运行吗?标头是否被传递到浏览器?
标签: php mongodb macos content-type