日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

关于Tomcat文件下载中文名乱码现象

發布時間:2023/12/1 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 关于Tomcat文件下载中文名乱码现象 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

//獲得下載文件的名稱
String filename = request.getParameter(“filename”);
//解決獲得中文參數的亂碼
filename = new String(filename.getBytes(“ISO8859-1”),“UTF-8”);
//獲得請求頭的User-Agent
String agent = request.getHeader(“User-Agent”);
//根據不同的瀏覽器進行不同的編碼
String filenameEncode = “”;
if (agent.contains(“MSIE”)) {
// IE瀏覽器
filenameEncode = URLEncoder.encode(filename, “utf-8”);
filenameEncode = filename.replace("+", " ");
} else if (agent.contains(“Firefox”)) {
// 火狐瀏覽器
BASE64Encoder base64Encoder = new BASE64Encoder();
filenameEncode= “=?utf-8?B?”
+ base64Encoder.encode(filename.getBytes(“utf-8”)) + “?=”;
} else {
// 其它瀏覽器
filenameEncode = URLEncoder.encode(filename, “utf-8”);
}
//要下載的這個文件的類型 -----客戶端根據mime類型區分別
??response.setContentType(this.getServletContext().getMimeType(filename));
??//告訴客戶端該文件不是直接解析,而是以附件形式打開,注意filename=
??response.setHeader(“Content-Disposition”, “attachment;filename=”+filenameEncode);
??
??//獲取下載文件的絕對路徑(相對于apach而言)
??String path = this.getServletContext().getRealPath(“download/”+filename);
??//獲取該文件的輸入流
??InputStream is = new FileInputStream(path);
??//獲取輸出流
??ServletOutputStream out = response.getOutputStream();
??//實現文件的拷貝
??int len = 0;
??byte[] bytes = new byte[1024];
??while((len=is.read(bytes))>0) {
???out.write(bytes,0,len);
??}
??is.close();
??//out會自動關閉

總結

以上是生活随笔為你收集整理的关于Tomcat文件下载中文名乱码现象的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。