2016-10-03 101 views
2

我有一個網站,該網站使用PHP開發並託管在亞馬遜服務器中。在Chrome瀏覽器中上傳的PDF文件不能在Chrome瀏覽器中打開,但是此PDF文件在其他瀏覽器(Internet Explorer)中打開以供查看。在鉻下載。我希望這個pdf可以查看。對於鏈接代碼
Amazon S3中的PDF無法在Chrome瀏覽器中查看

<a href="<?php echo $filename;?>" target="_blank"><?php echo $data['File_Label'];?></a> 


網址:Please click here

但低於文件被打開了用於查看鉻Please check this

+2

這個問題如何與'php'標籤相關? – Dekel

+0

https://support.google.com/chrome/answer/6213030?hl=zh-CN – RiggsFolly

+0

與Opera相同的問題。如果http://ozlabs.org/~dgibson/papers/dtc-paper.pdf等其他鏈接在瀏覽器中打開,則問題可能是「Content-Type:application/octet-stream」HTTP標頭。不知道解決方案 –

回答

2

如果您希望瀏覽器在處理該文件爲PDF格式,你應該讓他知道他的文件是pdf。這樣做的方法是發送相關的頭:

Content-type: application/pdf 

s3發送當前的標題是:

Contant-type: application/octet-stream 

既然你上傳文件到S3 - 你可以設置正確的mime-type在上傳過程中,或之後使用某些s3工具(例如s3cmd for windows)。

根據您提供的link to the documentation,該putObjectFile功能已過時,但是這是定義:

putObjectFile (string $file, string $bucket, string $uri, [constant $acl = S3::ACL_PRIVATE], [array $metaHeaders = array()], [string $contentType = null]) 

正如你所看到的 - 最後一個參數是contentType - 這樣你就可以在上傳時將其設置爲application/pdf文件。
這會在下載時設置正確的標題。

+0

查看正在使用的錨標記 – RiggsFolly

+0

@Dekel PDF鏈接在索引頁中創建,它是簡單的html錨標記。我該如何爲特定鏈接添加內容類型。 –

+0

這與html無關 - 標頭是服務器發送的內容。 – Dekel

相關問題