SpringBoot에서 Excel 파일을 다운로드하여 파일 손상 문제 해결

1897 단어 프로젝트 개발
최근에springboot에서 excel 파일을 다운로드하는 모듈을 만들었는데 다운로드한 파일은 줄곧 파일이 손상되어 인터넷에서 해결 방법을 많이 찾았지만 반나절 만에 해결되었다. 주요 원인은 springboot의resource 디렉터리에 있는 파일이 기본적으로 자동으로 압축되어 있기 때문이다. 모든 직접 다운로드가 열리면 오류가 발생할 수 있다. 여기에 해결 방법을 기록해라
코드 먼저 올리기
public void downloadExcel(HttpServletResponse response,HttpServletRequest request) {
        try {
            // 
            String fileName = "ruleConfig.xlsx";//ruleConfig.xlsx
            // 
            response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
            // MIME 
            response.setContentType("application/vnd.ms-excel;charset=UTF-8");
            // 
            String filePath = getClass().getResource("/static/" + fileName).getPath();
            System.out.println(filePath);
            FileInputStream input = new FileInputStream(filePath.substring(1));
            OutputStream out = response.getOutputStream();

           byte[] b = new byte[2048];
            int len;
            while ((len = input.read(b)) != -1) {
                out.write(b, 0, len);
            }
            out.flush();
            out.close();
            input.close();
        } catch (Exception ex) {
            log.error("getApplicationTemplate :", ex);
            //return Response.ok(" !");
        }
    }

이게 그냥 다운로드 코드예요.
해결 방법
중점은 다음pom에 압축을 피하는 플러그인을 추가하는 것이다
			
				org.apache.maven.plugins
				2.6
				maven-resources-plugin
				
					UTF-8
					
						xlsx
					
				
			

이 플러그인은 xlsx 파일이 리소스 디렉터리에서 자동으로 압축되는 것을 피할 수 있습니다. 이렇게 하면 정상적으로 다운로드하고 열 수 있습니다.

좋은 웹페이지 즐겨찾기