下載文件名稱亂碼

1.上來直接cope

public  String setFileDownloadHeader(HttpServletRequest request, HttpServletResponse response, String fileName) throws Exception {

    String userAgent = request.getHeader("user-agent").toLowerCase();

    if (userAgent.contains("msie") || userAgent.contains("like gecko") ) {
        // win10 ie edge 瀏覽器 和其餘系統的ie
        fileName = URLEncoder.encode(fileName, "UTF-8");
    } else {
        // fe
        fileName = new String(fileName.getBytes("UTF-8"), "iso-8859-1");
    }
    return fileName;

}
複製代碼

2. 設置下載文件名稱時調用

@GetMapping("/download")
    public String downloadFile(HttpServletRequest request, HttpServletResponse response) {
    ...
//  .處理文件名預防亂碼
        fileName = setFileDownloadHeader(request, response, fileName);
//  .設置強制下載不打開,安裝我的需求隨便設置
        response.setContentType("application/force-download");
//  .設置文件頭:最後一個參數是設置下載文件名
        response.setHeader("Content-Disposition", "attachment;fileName=" + fileName);
    ...
    }

複製代碼

3.看看他還亂不亂

相關文章
相關標籤/搜索