2012-06-28 84 views
4

在HTML中,你如何鏈接到瀏覽器只能下載的文件,而不是查看?例如,假設我有一個zip文件,my-program.zip。我希望我的網站訪問者能夠在點擊鏈接時下載該文件。鏈接如下所示:download my program。在我的網絡服務器上,HTML文件和zip文件位於同一個目錄中,所以zip文件的相對路徑就是它的文件名。如何鏈接到文件下載,瀏覽器無法查看?

但是,如果我只是鏈接到帶有<a href="my-program.zip">標記的文件,瀏覽器將無法識別鏈接,對不對?由於瀏覽器無法打開zip文件。那麼鏈接到它的正確方法是什麼?

+0

發帖和自我回答,因爲我記得有關於HTML這個問題時,我很多年前就開始學習英語。 –

回答

11

其實,你的榜樣適當的方式鏈接到文件:

<a href="my-program.zip">download my program</a> 

你永遠無法肯定地告訴該瀏覽器無法查看文件。你只需鏈接到它;這取決於瀏覽器如何做到他們認爲最好的 - 顯示,下載或執行其他操作。別擔心,瀏覽器通常會做正確的事情。

這遵循網絡的原理,您不知道瀏覽器將如何處理您發送的文件和頁面。你提到了一個ZIP文件,但想到PDF文件。它們就像一個ZIP文件:它們不是HTML,它們不是用於瀏覽器的,瀏覽器可能會下載它。但是有一些插件,如Adobe PDF ReaderSchubert’s PDF Browser Plugin,它們在瀏覽器中顯示PDF文件的內容。同樣,假設可能有一個瀏覽器的ZIP文件瀏覽器 - 它可能會向用戶顯示瀏覽器中ZIP文件的內容,並讓用戶決定在哪裏提取這些內容。

大多數瀏覽器不要有描述的假想的ZIP文件查看器,所以該文件將只是下載,就像你想要的。但那並不重要;只要寫下你的鏈接,一切都會好的。

瀏覽器可以做的事情之外,查看文件或立即下載文件。它也可以詢問用戶是否要下載文件。或者它可以開始下載文件,在其中檢測病毒,並立即刪除它。關鍵是,它取決於瀏覽器對文件的處理。

請注意,此政策是另一種方式。你的HTML頁面看起來像瀏覽器一樣 - 它們都是「資源」。 「資源」是「URL」中的「R」。當您通過訪問URL訪問HTML頁面時,瀏覽器認爲「這是一個HTML資源。我該怎麼做?哦,我可以在主窗口中顯示它 - 我會這樣做的。「這與單擊指向其URL的鏈接下載ZIP文件的過程相同,它認爲」這是ZIP資源。我該怎麼做?我不能顯示它 - 我想我會開始下載並打開下載窗口,使用戶可以看到發生了什麼「大多數瀏覽器,甚至讓你下載一個網頁的HTML就像一個文件,如果你問它。 。

如果您有多種格式的文件,並且希望讓瀏覽器選擇可以查看的最佳文件格式,那麼您可以使用HTTP Accept header設置系統。例如,如果您的ZIP和RAR版本是我的程序,那麼您可以將它鏈接到my-program,然後瀏覽器選擇最喜歡的版本。但是這種設置可能會很複雜,而且這種系統通常不需要僅僅用於文件下載。Accept頭通常是用來獲取的東西正確版本的瀏覽器是爲了視圖 - 例如,因爲它沒有任何編解碼器,可以播放瀏覽器可能會選擇通過WMV視頻文件的MP4視頻文件嵌入WMV視頻。


如果要強制瀏覽器下載文件即使瀏覽器或許可以查看它自身,看到this question

+18

回答自己很好。跟自己說話,好像你是一個不同的人?有點奇怪的xD – TheZ

+0

我不知道我是否在HTTP的解釋Accept頭是正確的;我沒有太多的工作。歡迎更正。 –

相關問題