728x90
1. Word 파일(.docx)
1) 바이너리 파일 작성 완료 후 바이트 배열로 만들기
InputFileStream is = new InputFileStream("/filePath");
XWPFDocument doc = new XWPFDocument(is);
...
ByteArrayOutputStream os = new ByteArrayOutputStream();
doc.write(os);
os.close();
doc.close();
byte[] xwpfBytes = os.toByteArray();
// xwpfBytes를 DB에 넣는 작업 수행
2) DB에서 바이트 배열 가져와서 파일로 다운로드
String fileName = "document.docx";
byte[] fileBytes = mapper.getBinaryFileBytes(); // 인자 생략
InputStream is = new ByteArrayInputStream(fileBytes);
XWPFDocument doc = new XWPFDocument(is);
response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document");
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\";");
doc.write(response.getOutputStream());
doc.close();
response.getOutputStream().close();
2. PowerPoint 파일(.pptx)
1) 바이너리 파일 작성 완료 후 바이트 배열로 만들기
ByteArrayOutputStream os = new ByteArrayOutputStream();
ppt.write(os);
os.close();
ppt.close();
byte[] xslfBytes = os.toByteArray();
// xslfBytes를 DB에 넣는 작업 수행
2) DB에서 바이트 배열 가져와서 파일로 다운로드
String fileName = "powerpoint.pptx";
byte[] fileBytes = mapper.getBinaryFileBytes(); // 인자 생략
InputStream is = new ByteArrayInputStream(fileBytes);
XWPFDocument doc = new XWPFDocument(is);
response.setContentType("application/vnd.ms-powerpoint");
response.setHeader("Content-Disposition", "attachment;filename=\"" + fileName + "\";");
doc.write(response.getOutputStream());
doc.close();
response.getOutputStream().close();
반응형
'Backend > Spring' 카테고리의 다른 글
Spring) MyBatis 동적 쿼리(매개변수 작성 시 $와 #의 차이) (0) | 2022.01.16 |
---|---|
Spring) 이미지 데이터(BLOB 타입)을 데이터베이스에서 가져와서 파일화하기 (0) | 2022.01.16 |
Spring) Poi와 Jxls를 사용해 Template을 이용한 워드 다운로드 (0) | 2021.12.06 |
Spring) Poi와 Jxls를 사용해 Template을 이용한 파워포인트 다운로드 -2. 테이블 작성 (0) | 2021.11.28 |
Spring) Poi와 Jxls를 사용해 Template을 이용한 파워포인트 다운로드 (0) | 2021.11.21 |