簡體   English   中英

瀏覽器緩存可下載文件

[英]Browser cache downloadable file

說我將pdf文件存儲在數據庫中(不重要)。 應用程序的用戶會定期訪問頁面以獲取已存儲的PDF並進行打印-對於不干膠標簽。

我不知道他們的下載目錄會隨着時間的推移填充相同文檔的副本,因為他們每次需要打印標簽時都會下載PDF。

有沒有一種方法可以指示瀏覽器緩存此文件? 或任何可能相對鏈接到用戶文件系統的方法? 所有用戶都將使用Windows 7 Pro在Chrome / Firefox上。

Etags將幫助您做到這一點。 如果自上次下載客戶端以來文件尚未更新,則服務器將發送304“未修改”響應,而不是文件。

如果文件是動態生成的,則將需要使用PHP手動實現etag生成,而不是依賴Web服務器。

http://www.php.net/manual/zh/function.http-cache-etag.php

我找到了解決問題的有用方法。

從對我的問題的評論中,我們得出結論,最好利用瀏覽器的內置PDF / DOC渲染器並下載其他無法識別的內容。

我閱讀了此標准: http : //tools.ietf.org/html/rfc6266

這是解決方案(標題):

Content-Disposition: inline; filename=something.pdf

為了代替必要的瀏覽器,我使用了“內聯”而不是附件。

大多數瀏覽器會根據URL自動執行此操作。 如果特定PDF Blob的URL是恆定的,則除非服務器響應已更改(通過HTTP字段),否則瀏覽器將不會重新下載它。

因此,您應該將站點設計為每個資源都有“永久鏈接”。 這可以通過在URL字符串中具有某種資源ID來實現。

正如其他人在評論中所說的那樣,服務器不能保證客戶端可以做任何特別的事情。 您所能提供的只是建議,希望大多數瀏覽器都將類似地對待。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM