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("\r\n", "");
23 } else { // IE及其他浏览器
24 filename = URLEncoder.encode(filename, "utf-8");
25 filename = filename.replace("+"," ");
26 }
27 return filename;
28 }
29 }