工具類 - 檔案下載時瀏覽器版本相容:DownLoadUtils
阿新 • • 發佈:2020-12-06
工具類 - 檔案下載時瀏覽器版本相容:DownLoadUtils
DownLoadUtils工具類(JDK 8 及以下):用於不同版本瀏覽器解析
package cn.itcast.utils; import sun.misc.BASE64Encoder; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; /* BASE64Encoder類: JDK8 以上版本不支援 */ public class DownLoadUtils { public static String getFileName(String agent, String filename) throws UnsupportedEncodingException { if (agent.contains("MSIE")) { // IE瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+", " "); } else if (agent.contains("Firefox")) { // 火狐瀏覽器 BASE64Encoder base64Encoder = new BASE64Encoder(); filename = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?="; } else { // 其它瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); } return filename; } }
DownLoadUtils工具類(JDK 9 及以上):用於不同版本瀏覽器解析
package com.itheima.utils; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.Base64; /* Base64.Encoder : JDK9及以上版本使用 */ public class DownLoadUtils { public static String getFileName(String agent, String filename) throws UnsupportedEncodingException { if (agent.contains("MSIE")) { // IE瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); filename = filename.replace("+", " "); } else if (agent.contains("Firefox")) { // 火狐瀏覽器 Base64.Encoder encoder = Base64.getEncoder(); filename = "=?utf-8?B?" + encoder.encodeToString(filename.getBytes("utf-8")) + "?="; } else { // 其它瀏覽器 filename = URLEncoder.encode(filename, "utf-8"); } return filename; } }