자바 웹 프로젝트 크롬 파일 다운로드 문제 해결 방법

더 읽 기
        작업 중 에 한 동료 가 다운로드 기능 을 할 때 Chrome 브 라 우 저 에서 정상 적 이지 못 한 것 을 발 견 했 습 니 다.마지막 으로 다운로드 파일 이름 을 처리 해 야 한 다 는 것 을 알 게 되 었 습 니 다.특별 기록,소스 코드 는 다음 과 같 습 니 다.
response.reset();
response.setContentType("application/octet-stream");
String filename = "";
if(httpRequest.getHeader("User-Agent").toUpperCase().indexOf("MEIE") > 0){
	filename = URLEncoder.encode(file_name, "UTF-8");
}else{
	filename = new String(file_name.getBytes("UTF-8"),"ISO8859-1");
}
//1:  ;2:  
if("2".equals(file_type)) {
	response.setHeader("Content-Disposition", "inline;filename=" + filename);
}else {
	response.setHeader("Content-Disposition", "attachment;filename=" + filename);
}

        그 중에서 request.getHeader("User-agent")는 브 라 우 저 종 류 를 판단 하 는 데 사 용 됩 니 다.
 
첨부:프론트 데스크 에서 전 송 된 중국 어 를 가 져 올 때 어 지 러 운 코드 가 발생 합 니 다.서로 다른 브 라 우 저 에 대해 특별한 처 리 를 해 야 합 니 다.
String fileName = request.getParameter("fileName");
//            
if (request.getHeader("User-Agent").toLowerCase()
		.indexOf("firefox") > 0) {
		fname = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); // firefox   
} else if (request.getHeader("User-Agent").toUpperCase()
		.indexOf("MSIE") > 0) {
	fname = URLEncoder.encode(fileName, "UTF-8");// IE   
}else if (request.getHeader("User-Agent").toUpperCase()
		.indexOf("CHROME") > 0) {
	fname = new String(fileName.getBytes("UTF-8"), "ISO8859-1");//   
}

좋은 웹페이지 즐겨찾기