SpringBoot 프로젝트를jar로 묶은 후 Excel 파일을 다운로드하여 열 수 없습니다.
2059 단어 SpringBoot
앞말
필자는 SpringBoot 프로젝트에서 Excel 템플릿을 다운로드하는 수요가 있는데 프로젝트가 아이디어에서 뛰기 시작하면 파일 다운로드가 성공하고 정상적으로 열립니다.프로젝트를jar로 포장한 후 테스트 환경에 배치하면 다운로드한 템플릿을 열 수 없습니다. 이 문제에 대해 기록합니다.
솔루션:
쓸데없는 말은 하지 않고 바로 코드를 붙이는 방식이 직접 측정하는 데 효과가 있다.참고: 템플릿은 resources/static/pattner 디렉터리에 다운로드 인터페이스에 놓입니다.
/**
*
* @param response
*/
@ApiOperation(" ")
@GetMapping("/download/pattern")
public void downloadPattern(HttpServletRequest request, HttpServletResponse response){
//
String fileName = " ";
// ,
try(InputStream in = new ClassPathResource("\\static\\pattern\\ .xlsx").getInputStream()) {
XSSFWorkbook workbook = new XSSFWorkbook(in);
FileUtil.downFile(fileName,response,workbook);
}catch (Exception e){
e.printStackTrace();
throw new Exception(" ",0);
}
}
다운로드() 방법:
/**
*
*/
@Log4j2
public class FileUtil {
/**
* Excel
* @param fileName
* @param response
* @param workbook Excel
* @throws IOException
*/
public static void downFile(String fileName,
HttpServletResponse response, XSSFWorkbook workbook) {
try(OutputStream os = response.getOutputStream()) {
fileName = URLEncoder.encode(fileName, "UTF-8");
response.reset();
response.setContentType("application/binary;charset=utf-8");
response.setHeader("Content-disposition", "attachment; filename=" + fileName + ".xlsx");
workbook.write(os);
os.flush();
} catch (Exception e) {
log.info("fileName: "+fileName + ", ! ",e);
throw new Exception();
}
}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
【Java・SpringBoot・Thymeleaf】 에러 메세지를 구현(SpringBoot 어플리케이션 실천편 3)로그인하여 사용자 목록을 표시하는 응용 프로그램을 만들고, Spring에서의 개발에 대해 공부하겠습니다 🌟 마지막 데이터 바인딩에 계속 바인딩 실패 시 오류 메시지를 구현합니다. 마지막 기사🌟 src/main/res...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.