網站不僅僅只包含網頁,有時你需要提供用戶能下載的文件。將你的文件放到服務器上并在網頁中附上鏈接只是第一步,你還需意識到HTTP響應的頭文件影響文件下載。
提示一:強制下載并控制文件名
在HTML中提供一個下載鏈接很簡單:
<
a
href
=
"http://download.httpwatch.com/httpwatch.exe"
>Download<
a
>
對于瀏覽器不知道如何呈現的二進制文件,如安裝程序和ZIP文件,這工作的很好。這會出現一個對話框,允許用戶將文件存儲到本地。
問題在于,如果文件能呈現自己,不同的瀏覽器行為就不一樣。例如,如果你鏈接一個純文本文件,瀏覽器會打開它,不會提示保存下載。
你可以加入以下響應頭文件強制使用文件下載對話框。
Content-Disposition: attachment; filename=<file name.ext>
頭部還可以控制默認的文件名,這可以幫助你方便的生成像getfile.aspx一樣的內容,但你要提供一個更有意義的文件名給用戶。
對于靜態內容,您可以在您的Web服務器手動配置額外的頭文件。例如,下面是在IIS中設置:
為動態生成的內容,您需要在網頁的服務器端代碼中添加此頭部。
加入了頭部之后,瀏覽器總是提示用戶下載該文件: