>Java >Java베이스 >Java에서 다운로드한 파일 이름이 깨졌습니다.

Java에서 다운로드한 파일 이름이 깨졌습니다.

angryTom
angryTom원래의
2019-11-12 16:19:142155검색

Java에서 다운로드한 파일 이름이 깨졌습니다.

Java 다운로드 파일 이름이 깨집니다.

다운로드 시 JAVA 파일이 깨지는 경우는 두 가지입니다.

1 다운로드 시 중국어 파일 이름이 깨집니다.

2. 경로에 잘못된 문자가 포함되어 다운로드할 때 이름이 깨져서 파일을 찾을 수 없다는 메시지가 나타납니다

해결 방법은 코드의 다음 부분을 참조하세요 (권장 튜토리얼: java tutorial)

response.setContentType("multipart/form-data");

            String userAgent = request.getHeader("User-Agent");
            String oraFileName = meetingFile.getFileName();
            String formFileName=oraFileName;
              
            // 针对IE或者以IE为内核的浏览器:
            if (userAgent.contains("MSIE") || userAgent.contains("Trident")) {
                formFileName = java.net.URLEncoder.encode(formFileName, "UTF-8");
            } else {
                // 非IE浏览器的处理:
                formFileName = new String(formFileName.getBytes("UTF-8"), "ISO-8859-1");
            }
            response.setHeader("Content-disposition",
                    String.format("attachment; filename=\"%s\"", formFileName));
            response.setContentType("application/vnd.ms-excel;charset=utf-8");
            response.setCharacterEncoding("UTF-8");
                   
                        ServletOutputStream out;
            // 通过文件路径获得File对象
            File file = null;
            if (meetingFile != null) {
                file = new File(path + "upload/"+oraFileName);
            }

(1) 첫 번째 유형의 잘못된 코드가 발견되면 다운로드 페이지에서 다음과 같은 중국어 잘못된 코드 문제가 발생합니다.

Java에서 다운로드한 파일 이름이 깨졌습니다.

Java에서 다운로드한 파일 이름이 깨졌습니다.

다음 코드를 사용하여 문제를 해결하세요.

Java에서 다운로드한 파일 이름이 깨졌습니다.

(2 ) 다운로드 시 그림과 같이 두 번째 잘못된 코드 문제가 발생하는 경우:

Java에서 다운로드한 파일 이름이 깨졌습니다.

다음 코드를 사용하여 문제를 해결하세요. 즉, 먼저 tomcat, eclipse 등이 utf-8로 인코딩되어 있는지 확인하세요.

Java에서 다운로드한 파일 이름이 깨졌습니다.

그러면 JAVA에서는 파일명의 첫 번째 인코딩과 분리되어 있어서 별도로 인코딩되어 서로 영향을 주지 않습니다.

Java에서 다운로드한 파일 이름이 깨졌습니다.

위 내용은 Java에서 다운로드한 파일 이름이 깨졌습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.