java web項(xiàng)目實(shí)現(xiàn)文件下載實(shí)例代碼
更新時(shí)間:2013年09月16日 16:46:01 作者:
現(xiàn)在項(xiàng)目里面有個(gè)需求,需要把系統(tǒng)產(chǎn)生的日志文件給下載到本地
先獲取所有的日志文件列表,顯示到界面,選擇一個(gè)日志文件,把文件名傳到后臺(tái)
復(fù)制代碼 代碼如下:
File file = new File(path);// path是根據(jù)日志路徑和文件名拼接出來(lái)的
String filename = file.getName();// 獲取日志文件名稱(chēng)
InputStream fis = new BufferedInputStream(new FileInputStream(path));
byte[] buffer = new byte[fis.available()];
fis.read(buffer);
fis.close();
response.reset();
// 先去掉文件名稱(chēng)中的空格,然后轉(zhuǎn)換編碼格式為utf-8,保證不出現(xiàn)亂碼,這個(gè)文件名稱(chēng)用于瀏覽器的下載框中自動(dòng)顯示的文件名
response.addHeader("Content-Disposition", "attachment;filename=" + new String(filename.replaceAll(" ", "").getBytes("utf-8"),"iso8859-1"));
response.addHeader("Content-Length", "" + file.length());
OutputStream os = new BufferedOutputStream(response.getOutputStream());
response.setContentType("application/octet-stream");
os.write(buffer);// 輸出文件
os.flush();
os.close();
struts2.0中,可以使用public void downloadFile(){}這種方法,返回值類(lèi)型為void,調(diào)用時(shí),直接寫(xiě)downloadFile.do就可以出現(xiàn)下載提示框
您可能感興趣的文章:
- java實(shí)現(xiàn)FTP文件上傳與文件下載
- Java Web項(xiàng)目中實(shí)現(xiàn)文件下載功能的實(shí)例教程
- 詳解Java文件下載的幾種實(shí)現(xiàn)方式
- java使用http實(shí)現(xiàn)文件下載學(xué)習(xí)示例
- Java Web實(shí)現(xiàn)文件下載和亂碼處理方法
- JavaEE實(shí)現(xiàn)文件下載
- Java Web端程序?qū)崿F(xiàn)文件下載的方法分享
- Java實(shí)現(xiàn)ftp文件上傳下載解決慢中文亂碼多個(gè)文件下載等問(wèn)題
- javaweb 實(shí)現(xiàn)文件下載的方法及實(shí)例代碼
- java實(shí)現(xiàn)文件下載的兩種方式
相關(guān)文章
Gradle構(gòu)建多模塊項(xiàng)目的方法步驟
這篇文章主要介紹了Gradle構(gòu)建多模塊項(xiàng)目的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-05-05JAVA面試題之Forward與Redirect的區(qū)別詳解
這篇文章主要給大家介紹了在JAVA面試中可能遇到會(huì)遇到的一道題,就是java中Forward與Redirect兩者之前的區(qū)別,文中介紹的非常詳細(xì),對(duì)大家具有一定參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2017-05-05Logback MDCAdapter日志跟蹤及自定義效果源碼解讀
這篇文章主要為大家介紹了Logback MDCAdapter日志跟蹤及自定義效果源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Java中CopyOnWriteArrayList的使用解析
這篇文章主要介紹了Java中CopyOnWriteArrayList的使用解析,CopyOnWriteArrayList適合使用在讀操作遠(yuǎn)遠(yuǎn)大于寫(xiě)操作的場(chǎng)景里,比如緩存,它不存在擴(kuò)容的概念,每次寫(xiě)操作都要復(fù)制一個(gè)副本,在副本的基礎(chǔ)上修改后改變Array引用,需要的朋友可以參考下2023-12-12淺談System.getenv()和System.getProperty()的區(qū)別
這篇文章主要介紹了System.getenv()和System.getProperty()的區(qū)別,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06Java 詳解包裝類(lèi)Integer與int有哪些共通和不同
這篇文章主要介紹的是 Java中int和Integer的區(qū)別,Java 是一種強(qiáng)數(shù)據(jù)類(lèi)型的語(yǔ)言,因此所有的屬性必須有一個(gè)數(shù)據(jù)類(lèi)型,下面文章基于Java詳細(xì)int和Integer有何區(qū)別,需要的朋友可以參考一下2022-04-04