最近在進行文件下載時發現一個問題,就是下面語句運行時,下載某些文件正常,下載某些文件異常,后來發現文件名中有空格的文件火狐瀏覽器是默認將文件名截斷了的
response.setHeader("Content-disposition","attachment;filename="+new String(fileName.getBytes("gb2312"),"iso8859-1"));
但是在IE上面就是正常的,解決問題的方法有兩種,一種比較簡單,就是先判斷是否是火狐,如果是火狐,則將文件名中的空格去掉,
String agent = (String)request.getHeader("USER-AGENT"); if(agent != null && agent.indexOf("MSIE") == -1) { try { fileName2=new String(fileName.replace(" ","").getBytes("gb2312"),"iso8859-1"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } response.setHeader("Content-disposition","attachment;filename="+fileName2);
另外一種就是加密解密,可以參考這里