2012-11-09 107 views
3

在我們正在構建的網站頁面上,http://ovsd.nutrislice.com/wellness/,pdf下載鏈接(「下載問題」)在Chrome瀏覽器的PDF查看器中加載但在所有其他瀏覽器觸發下載。右鍵單擊+「另存爲」在Chrome中可用。我意識到Chrome是唯一具有內置默認PDF查看器的瀏覽器。PDF鏈接在Chrome瀏覽器中加載時出現卡住PDF查看器

我想我們可以指示人們右鍵單擊然後「另存爲」,但是我想看看是否有人能夠看到html或服務器響應中的問題,這會導致chrome失敗。

它不是一個傳統的傳遞通過文件下載坐在某個服務器上。我們使用Heroku,並且我正在將數據庫存儲在數據庫中(我意識到這個缺點,但它比現在管理S3上的非現場文件更簡單)。我通過Django View動態生成響應,所以我想知道是否在響應頭文件中缺少某些東西。

謝謝!

回答

4

看起來像一個壞的內容類型:

Content-Type:('application/pdf', None) 

檢查你的代碼,你正在分配的內容類型的響應。看起來你正在發送一個元組而不僅僅是application/pdf

+0

感謝您的發現!你釘了它。我不恰當地將mimetypes.guess_type方法的整個返回值(它是一個元組)設置爲content_type。 http://docs.python.org/2/library/mimetypes.html#mimetypes.guess_type –

3

就像提到@dgel,你的內容類型不正確:

$ curl -I http://ovsd.nutrislice.com/dbfiles/cms/resources/Vol5_Issue1_5_Dos_and_Donts_for_Supermarket_Survival.pdf 
HTTP/1.1 200 OK 
Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE 
Access-Control-Allow-Origin: * 
Cache-Control: max-age=90000 
Content-Type: ('application/pdf', None)  # <- Incorrect 
Date: Fri, 09 Nov 2012 19:25:06 GMT 
Expires: Fri, 09 Nov 2012 23:20:28 GMT 
Last-Modified: Thu, 08 Nov 2012 22:20:28 GMT 
Server: gunicorn/0.14.6 
Connection: keep-alive 

此外,它可能是添加Content-Length頭一個好主意。

+0

好的提示內容長度。有趣的討論內容長度標題在這裏:http://tech.hickorywind.org/articles/2008/05/23/content-length-mostly-does-not-matter-the-reverse-bob-barker-rule我'將它添加到我要做的事情列表中,因爲它很容易設置。 –

相關問題