1 package cn.itcast.bos.utils; 2 3 import java.io.IOException; 4 import java.net.URLEncoder; 5 6 import sun.misc.BASE64Encoder; 7 8 public class FileUtils { 9 /** 10 * 下载文件时,针对不同浏览器,进行附件名的编码 11 * 12 * @param filename 13 * 下载文件名 14 * @param agent 15 * 客户端浏览器 16 * @return 编码后的下载附件名 17 * @throws IOException 18 */ 19 public static String encodeDownloadFilename(String filename, String agent) throws IOException { 20 if (agent.contains("Firefox")) { // 火狐浏览器 21 filename = "=?UTF-8?B?"+ new BASE64Encoder().encode(filename.getBytes("utf-8"))+ "?="; 22 filename = filename.replaceAll(" ", ""); 23 } else { // IE及其他浏览器 24 filename = URLEncoder.encode(filename, "utf-8"); 25 filename = filename.replace("+"," "); 26 } 27 return filename; 28 } 29 }