2017-05-06 78 views
0

我有问题。这里是我的PHP代码:如何设置内容类型在Mac上的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。请有人帮我解决这个问题。

windows

mac

+0

目前尚不清楚究竟什么不工作。是否从Safari打开URL时,无法下载PDF文件?它如何在Windows上工作? –

+0

它正在处理窗口,如显示PDF,并有工具下载,打印等。但它不适用于Mac,因为它只是显示抽象字母表,如64位编码也许。 – Unknown

+0

Mac上是否有PDF插件? –

回答

0

上有similar issue

那么一个帖子,Chrome的意思是一个基本的浏览器是定制与扩展您的需求。我们的网络应用程序商店提供了一系列免费,方便的网页扩展程序,让您可以在浏览器中正确查看PDF文件。

请尝试安装一个插件来查看在MacOS中铬的PDF文件

https://chrome.google.com/webstore/search/pdf%20viewer?hl=en

此外,还有一个办法,以确保你有你的服务器端代码正确的是输出保存为一个带有.pdf扩展名的文件,并尝试打开它以确保它是正确的PDF。

如果需要强制Chrome下载文件而不是查看文件,以便系统PDF查看器可以查看该文件。根据此question,您可以使用标题Content-Disposition: attachment

+0

该报告称,Adobe Acrobat for Chrome目前还不适用于Mac。 :( – Unknown

+0

更新链接以显示PDF扩展名另一方面,您是否尝试过使用您的PDF查看器保存文件并在MacOS上查看它? –

+0

您可以强制下载文件而不是查看它,然后您可以查看它使用系统查看器 –