response.setHeader("Content-disposition","attachment;filename="+fileName) 下載時文件名中存在空格錯誤


最近在進行文件下載時發現一個問題,就是下面語句運行時,下載某些文件正常,下載某些文件異常,后來發現文件名中有空格的文件火狐瀏覽器是默認將文件名截斷了的

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);

另外一種就是加密解密,可以參考這里


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM