|
顧名思義,文件下載就是將服務(wù)器中的文件下載到本地,下面主要介紹 Spring MVC 文件下載的實(shí)現(xiàn)方法和實(shí)現(xiàn)過程。 文件下載的實(shí)現(xiàn)方法文件下載有以下兩種實(shí)現(xiàn)方法: 通過超鏈接實(shí)現(xiàn)下載:實(shí)現(xiàn)簡(jiǎn)單,但暴露了下載文件的真實(shí)位置,并且只能下載 Web 應(yīng)用程序所在目錄下的文件,WEB-INF 目錄除外。 利用程序編碼實(shí)現(xiàn)下載:增強(qiáng)安全訪問控制,可以下載除 Web 應(yīng)用程序所在目錄以外的文件,也可以將文件保存到數(shù)據(jù)庫(kù)中。 利用程序編碼實(shí)現(xiàn)下載需要設(shè)置以下兩個(gè)報(bào)頭: 1、Web 服務(wù)器需要告訴瀏覽器其所輸出內(nèi)容的類型不是普通文本文件或 HTML 文件,而是一個(gè)要保存到本地的下載文件,這需要設(shè)置 Content-Type 的值為 application/x-msdownload。 2、Web 服務(wù)器希望瀏覽器不直接處理相應(yīng)的實(shí)體內(nèi)容,而是由用戶選擇將相應(yīng)的實(shí)體內(nèi)容保存到一個(gè)文件中,這需要設(shè)置 Content-Disposition 報(bào)頭。 該報(bào)頭指定了接收程序處理數(shù)據(jù)內(nèi)容的方式,在 HTTP 應(yīng)用中只有 attachment 是標(biāo)準(zhǔn)方式,attachment 表示要求用戶干預(yù)。在 attachment 后面還可以指定 filename 參數(shù),該參數(shù)是服務(wù)器建議瀏覽器將實(shí)體內(nèi)容保存到文件中的文件名稱。 設(shè)置報(bào)頭的示例如下: response.setHeader("Content-Type", "application/x-msdownload");
response.setHeader("Content-Disposition", "attachment;filename="+filename);12復(fù)制代碼類型:[java]程序編碼文件下載可分為兩個(gè)步驟: 1、在客戶端使用一個(gè)文件下載超鏈接,鏈接指向后臺(tái)下載文件的方法以及文件名。 2、在控制器類中,提供文件下載方法進(jìn)行下載。 |
|
|