我有一個用 PHP 和 JavaScript 撰寫的腳本,它通過 API 生成 PDF。
該域有一個.htaccessin 表示 PDF 將被“下載”。
<FilesMatch "\.pdf$">
Header set Content-Disposition "Attachment"
Header set X-Content-Type-Options "nosniff"
</FilesMatch>
我可以以某種方式保留域配置并排除生成的 PDF 檔案,以便可以使用瀏覽器的內置 PDF 查看器查看它,而不是瀏覽器提示下載/保存檔案?
如果我.htaccess在撰寫 PDF 的目錄中生成一個新檔案,那只.htaccess會影響它,對嗎?
uj5u.com熱心網友回復:
我嘗試在我將 pdf 設定為行內的目錄中創建一個新的 htaccess。
<FilesMatch "\.pdf$"> Header set Content-Disposition "inline" </FilesMatch>我現在可以file.pdf在線查看而無需下載它。但是在域的其余部分中,如果我嘗試在任何目錄中打開 pdf,則會按照根 htaccess 的指示下載 pdf。這是錯的嗎?
不,這沒有錯。以這種方式覆寫子目錄(更具體的).htaccess檔案中的標頭是完全可以接受的。(旁白:您可能會unset改為使用標題,因為inline省略時是默認值。)
另一種方法是根據 URL 路徑有條件地在父配置中設定標頭。
有條件地設定標題
例如,當 URL 路徑與正則運算式不匹配時^/directory($|/)(需要 Apache 2.4):
# /.htaccess
<If "%{REQUEST_URI} !~ m#^/directory($|/)#">
<FilesMatch "\.pdf$">
Header set Content-Disposition "Attachment"
Header set X-Content-Type-Options "nosniff"
</FilesMatch>
</If>
要排除/directory的 URL 路徑前綴在哪里。
(盡管您可能想設定X-Content-Type-Options標題而不管位置。)
.htaccess但是請注意,如果它們碰巧不同,則現在基于 URL 路徑,而不是檔案路徑(如使用第二個檔案)。
使用 mod_setenvif (Apache 2.2 ) 的替代方法:
SetEnvIf Request_URI "^/directory($|/)" INLINE_FILE
<FilesMatch "\.pdf$">
Header set Content-Disposition "Attachment" env=!INLINE_FILE
Header set X-Content-Type-Options "nosniff"
</FilesMatch>
如果請求的 URL 路徑與指定的正則運算式(即要排除的目錄)匹配,則該SetEnvIf指令設定env var。如果未設定env var (如前綴所示) ,則有條件地設定標頭INLINE_FILE。Content-DispositionINLINE_FILE!
uj5u.com熱心網友回復:
“我可以……不用下載就可以在瀏覽器中查看嗎?”
不。HTTPS(取代 FTPS)是文本傳輸,換句話說,所有網路材料都需要從檔案服務器轉移到基于瀏覽螢屏的文字處理器作為文本,在那里它被編輯到客戶端顯示系統中。
沒有例外,除非您不傳輸。可以行內顯示附件的概念是對純文本和 html 電子郵件之間差異的回歸,但是 html 在所有情況下都有附件:-
電子郵件訊息的正文中可能包含行內影像以及與之關聯的常規附件。
特別是對于帶有(in) html 文本的 PDF,作為二進制應用程式/pdf 的 PDF 附件需要獨立于網頁運行,作為客戶端 CPU 中的二進制物件,以編輯成可選的幀嵌入螢屏像素物件,同時時間產生可編輯的文本,用于搜索/顯示字母作為詞組。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/513771.html
上一篇:從CAG下載PDF
