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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java文件路径及文件名乱码_javaweb文件下载及文件名中文乱码处理

發(fā)布時(shí)間:2024/7/23 java 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java文件路径及文件名乱码_javaweb文件下载及文件名中文乱码处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版權(quán)聲明:yanghaha的原創(chuàng)博客 https://blog.csdn.net/qq_44758435/article/details/90636619

文件下載

需要先導(dǎo)入兩個(gè)jar包

commons-fileupload-1.3.1.jar

commons-io-2.4.jar

String fileName = request.getParameter("fileName");

//下載文件,需要設(shè)置兩個(gè)響應(yīng)頭

//application/octet-stream任意文件類型

response.addHeader("content-Type", "application/octet-stream");

//對于不同瀏覽器進(jìn)行處理

//根據(jù)請求頭user-agent

//attachment打開對話框下載 inline直接打開

String agent = request.getHeader("User-agent");

if(agent.indexOf("Firefox")!=-1) {

response.addHeader("content-Disposition", "attachment;fileName==?UTF-8?B?"+Base64.getEncoder().encodeToString(fileName.getBytes("utf-8"))+"?=");

}else if(agent.indexOf("Edge")!=-1) {

response.addHeader("content-Disposition", "attachment;fileName="+URLEncoder.encode(fileName, "utf-8"));

}

//servlet 通過文件路徑將文件轉(zhuǎn)換為輸入流 讀到servlet中

InputStream in = getServletContext().getResourceAsStream("/res/"+fileName);

//輸出流

ServletOutputStream out = response.getOutputStream();

byte[] bt = new byte[10];

int len = -1;

//將緩沖區(qū)的讀取bt

while((len=in.read(bt))!=-1) {

//將bt里的輸出到response

out.write(bt,0,len);

}

out.close();

in.close();

文件下載名中文亂碼問題

(1).edge

response.addHeader("content-Disposition", "attachment;fileName="+URLEncoder.encode(fileName, "utf-8"));

(2).火狐

response.addHeader("content-Disposition", "attachment;fileName==?UTF-8?B?"+Base64.getEncoder().encodeToString(fileName.getBytes("utf-8"))+"?=");

(3).綜合處理

String agent = request.getHeader("User-agent");

if(agent.indexOf("Firefox")!=-1) {

response.addHeader("content-Disposition", "attachment;fileName==?UTF-8?B?"+new String(Base64.encodeBase64(fileName.getBytes("utf-8")))+"?=");

}else if(agent.indexOf("Edge")!=-1) {

response.addHeader("content-Disposition", "attachment;fileName="+URLEncoder.encode(fileName, "utf-8"));

}

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的Java文件路径及文件名乱码_javaweb文件下载及文件名中文乱码处理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。