From 3e03e571015dcf50810365d69be8b8e4b294fb0c Mon Sep 17 00:00:00 2001 From: lkd9125 Date: Thu, 21 Sep 2023 15:11:13 +0900 Subject: [PATCH] =?UTF-8?q?=ED=8C=8C=EC=9D=BC=20=EB=8B=A4=EC=9A=B4?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../template/service/TemplateService.java | 53 +++++++++++++++---- 1 file changed, 43 insertions(+), 10 deletions(-) diff --git a/pav-server/src/main/java/com/palnet/biz/api/bas/flight/template/service/TemplateService.java b/pav-server/src/main/java/com/palnet/biz/api/bas/flight/template/service/TemplateService.java index a908e6b0..f41becc9 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/bas/flight/template/service/TemplateService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/bas/flight/template/service/TemplateService.java @@ -1,16 +1,13 @@ package com.palnet.biz.api.bas.flight.template.service; import java.io.File; -import java.io.FileOutputStream; +import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; -import java.io.StringReader; -import java.nio.charset.Charset; -import java.nio.file.Files; -import java.nio.file.Paths; +import java.io.OutputStream; +import java.net.URLEncoder; import java.time.Instant; -import java.util.Map; -import java.util.Map.Entry; +import java.util.Objects; import javax.servlet.http.HttpServletResponse; import javax.transaction.Transactional; @@ -117,9 +114,45 @@ public class TemplateService { public void fileDownload(int fileSno, HttpServletResponse response) { ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); - if(comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); - - log.info("comFileBas -> {}", comFileBas); + if(comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); + + InputStream inputStream = null; + OutputStream outputStream = null; + + try { + File pdfFile = new File(comFileBas.getFilePath() + comFileBas.getFileSaveNm()); + inputStream = new FileInputStream(pdfFile); + + String fileOriName = comFileBas.getFileOriNm(); + fileOriName = URLEncoder.encode(comFileBas.getFileOriNm(), "UTF-8"); + + response.setContentType("application/octet-stream"); + response.setCharacterEncoding("UTF-8"); + response.setHeader("Content-Disposition", "attachment; filename=\"" + fileOriName + "\""); + response.setContentLengthLong(Long.parseLong(comFileBas.getFileSize())); + response.setStatus(HttpServletResponse.SC_OK); + + outputStream = response.getOutputStream(); + + byte[] buffer = new byte[1024]; //1KB 설정 + int length; + + while((length = inputStream.read(buffer)) != -1) { + outputStream.write(buffer); + } + + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + Objects.requireNonNull(outputStream).flush(); + outputStream.close(); + inputStream.close(); + } catch (IOException e) { + e.printStackTrace(); + } + + } }