1. 程式人生 > >下載檔案時檔名為中文相容IE和火狐

下載檔案時檔名為中文相容IE和火狐

response.setContentType("application/x-download");
if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0)
{
    response.setHeader("Content-Disposition", "attachment; filename=\"" + new String(filename.getBytes("UTF-8"), "ISO8859-1") + "\""); // 一定要前後雙引號括起來,不然火狐遇到帶空格的檔名,會顯示不全。
}
//IE
else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0)
{
    filename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");//URLEncoder會把空格替換為加號,再轉回來就好,記住第一個引數是正則。
    response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
}