首頁 Java java教程 java檔案的下載教學詳解(不解析)

java檔案的下載教學詳解(不解析)

Aug 06, 2018 pm 05:31 PM

       先來說明最近研究的servlet。 servlet是一段程式碼,執行在伺服器中。

        servlet有三個規格servlet技術,listener技術--監聽器,fileter技術-過濾器。後兩個會在以後的部落格再介紹。在來說一下什麼是ServletContext物件。 ServletContext物件代表一個web應用程式環境(上下文),ServletContext物件一個web應用只有一個。

        ServletContext是一個域物件--儲存在資料區域的就是域物件作用範圍就是所有的web資源。

來說一下怎麼下載文件,如果把文件放到伺服器中(發佈的網站的電腦中)。

java檔案的下載教學詳解(不解析)

這樣就可以了,但是會遇見這個中情況。想把jpg格式下載下來,但瀏覽器直接開啟了,沒有下載,但zip格式就可以下載了。這個就需要透過程式碼設置,不讓瀏覽器解析。這一就可以下載了。

     新建一個Servlet文件,在get程式碼中寫。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

//解决获得中文参数的乱码

filename=new String(filename.getBytes("ISO8859-1"),"UTF-8");

//要下载的文件的类型--客户端通过文件的MIME类型去区分类型

response.setContentType(this.getServletContext().getMimeType(filename));

//告诉客户端该文件不是直接解析而是以附件的形式打开(下载)

response.setHeader("Content-Disposition", "attachment;filename="+filename);

//收获文件的绝对路径

String path = this.getServletContext().getRealPath("download/"+filename);

//获得文件的输入流

FileInputStream in = new FileInputStream(path);

//获得输出流--通过response获得输出流用于向客户端写内容

ServletOutputStream out = response.getOutputStream();

//文件拷贝的模板代码

int len=0;

byte[] buffer=new byte[1024];

while((len=in.read(buffer))>0){

    out.write(buffer, 0, len);

}

in.close();

out.close();

登入後複製

     這個out可以關閉也可以不用關,但是in需要關閉因為這個是在程式中new出來的。 out在執行完程式會自動關閉。

java檔案的下載教學詳解(不解析)

就是這個樣子。

這個相當於伺服器中的資源。

java檔案的下載教學詳解(不解析)

相關推薦:

java 解析XML檔案

java 資料夾的解析

以上是java檔案的下載教學詳解(不解析)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章

倉庫:如何復興隊友
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
3 週前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 週前 By 尊渡假赌尊渡假赌尊渡假赌

熱門文章標籤

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte 2025年的前4個JavaScript框架:React,Angular,Vue,Svelte Mar 07, 2025 pm 06:09 PM

2025年的前4個JavaScript框架:React,Angular,Vue,Svelte

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型? Java的類負載機制如何起作用,包括不同的類載荷及其委託模型? Mar 17, 2025 pm 05:35 PM

Java的類負載機制如何起作用,包括不同的類載荷及其委託模型?

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案? 如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案? Mar 17, 2025 pm 05:46 PM

如何將Maven或Gradle用於高級Java項目管理,構建自動化和依賴性解決方案?

Node.js 20:關鍵性能提升和新功能 Node.js 20:關鍵性能提升和新功能 Mar 07, 2025 pm 06:12 PM

Node.js 20:關鍵性能提升和新功能

冰山:數據湖桌的未來 冰山:數據湖桌的未來 Mar 07, 2025 pm 06:31 PM

冰山:數據湖桌的未來

如何在Java中實施功能編程技術? 如何在Java中實施功能編程技術? Mar 11, 2025 pm 05:51 PM

如何在Java中實施功能編程技術?

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存? 如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存? Mar 17, 2025 pm 05:44 PM

如何使用咖啡因或Guava Cache等庫在Java應用程序中實現多層緩存?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復 Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復 Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題已修復

See all articles