java文件下載設(shè)置中文名稱(chēng)的實(shí)例(response.addHeader)
實(shí)例如下:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String browser = ""; String fileName = "測(cè)試.txt"; try { browser = request.getHeader("User-Agent"); if (-1 < browser.indexOf("MSIE 6.0") || -1 < browser.indexOf("MSIE 7.0")) { // IE6, IE7 瀏覽器 response.addHeader("content-disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO8859-1")); } else if (-1 < browser.indexOf("MSIE 8.0")) { // IE8 response.addHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); } else if (-1 < browser.indexOf("MSIE 9.0")) { // IE9 response.addHeader("content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); } else if (-1 < browser.indexOf("Chrome")) { // 谷歌 response.addHeader("content-disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8")); } else if (-1 < browser.indexOf("Safari")) { // 蘋(píng)果 response.addHeader("content-disposition", "attachment;filename=" + new String(fileName.getBytes(), "ISO8859-1")); } else { // 火狐或者其他的瀏覽器 response.addHeader("content-disposition", "attachment;filename*=UTF-8''" + URLEncoder.encode(fileName, "UTF-8")); } } catch (Exception e) { e.printStackTrace(); } InputStream in = new FileInputStream("D:\\test.txt");//獲取文件輸入流 int len = 0; byte[] buffer = new byte[1024]; OutputStream out = response.getOutputStream(); while ((len = in.read(buffer)) > 0) { out.write(buffer,0,len);//將緩沖區(qū)的數(shù)據(jù)輸出到客戶(hù)端瀏覽器 } in.close(); out.flush(); out.close(); }
判斷各個(gè)瀏覽器,然后進(jìn)行解碼和加碼。
以上這篇java文件下載設(shè)置中文名稱(chēng)的實(shí)例(response.addHeader)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- java web response提供文件下載功能的實(shí)例講解
- HttpServletResponse亂碼問(wèn)題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
- 淺談java分頁(yè)三個(gè)類(lèi) PageBean ResponseUtil StringUtil
- java HttpServletRequest和HttpServletResponse詳解
- Java中HttpServletResponse響應(yīng)中文出現(xiàn)亂碼問(wèn)題
- JavaEE通過(guò)response實(shí)現(xiàn)請(qǐng)求重定向
- JavaEE中用response向客戶(hù)端輸出中文數(shù)據(jù)亂碼問(wèn)題分析
- JavaWeb response完成重定向?qū)崿F(xiàn)過(guò)程詳解
相關(guān)文章
Java游戲開(kāi)發(fā)之俄羅斯方塊的實(shí)現(xiàn)
俄羅斯方塊是一個(gè)最初由阿列克謝帕吉特諾夫在蘇聯(lián)設(shè)計(jì)和編程的益智類(lèi)視頻游戲。本文和大家分享了利用Java語(yǔ)言實(shí)現(xiàn)這一經(jīng)典的小游戲的示例代碼,需要的可以參考一下2022-05-05java中關(guān)于內(nèi)部類(lèi)的使用詳解
本篇文章介紹了,在java中關(guān)于內(nèi)部類(lèi)的使用詳解。需要的朋友 參考下2013-04-04JAVA位運(yùn)算的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于JAVA有關(guān)位運(yùn)算的全套梳理,需要的朋友們可以參考學(xué)習(xí)下。2020-03-03Idea?中控制啟動(dòng)命令的詳細(xì)過(guò)程?區(qū)分環(huán)境案例詳解
這篇文章主要介紹了Idea?中控制啟動(dòng)命令的詳細(xì)過(guò)程?區(qū)分環(huán)境案例詳解,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-08-08Spring的@PreAuthorize注解自定義權(quán)限校驗(yàn)詳解
這篇文章主要介紹了Spring的@PreAuthorize注解自定義權(quán)限校驗(yàn)詳解,由于項(xiàng)目中,需要對(duì)外開(kāi)放接口,要求做請(qǐng)求頭校驗(yàn),不做其他權(quán)限控制,所以準(zhǔn)備對(duì)開(kāi)放的接口全部放行,不做登錄校驗(yàn),需要的朋友可以參考下2023-11-11java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)
下面小編就為大家?guī)?lái)一篇java-servlet-轉(zhuǎn)發(fā)AND路徑(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10