자바 웹 프로젝트 크롬 파일 다운로드 문제 해결 방법
작업 중 에 한 동료 가 다운로드 기능 을 할 때 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");//
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.