|
|
@ -1,16 +1,13 @@ |
|
|
|
package com.palnet.biz.api.bas.flight.template.service; |
|
|
|
package com.palnet.biz.api.bas.flight.template.service; |
|
|
|
|
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
import java.io.File; |
|
|
|
import java.io.FileOutputStream; |
|
|
|
import java.io.FileInputStream; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.IOException; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.InputStream; |
|
|
|
import java.io.StringReader; |
|
|
|
import java.io.OutputStream; |
|
|
|
import java.nio.charset.Charset; |
|
|
|
import java.net.URLEncoder; |
|
|
|
import java.nio.file.Files; |
|
|
|
|
|
|
|
import java.nio.file.Paths; |
|
|
|
|
|
|
|
import java.time.Instant; |
|
|
|
import java.time.Instant; |
|
|
|
import java.util.Map; |
|
|
|
import java.util.Objects; |
|
|
|
import java.util.Map.Entry; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
import javax.transaction.Transactional; |
|
|
|
import javax.transaction.Transactional; |
|
|
@ -117,9 +114,45 @@ public class TemplateService { |
|
|
|
public void fileDownload(int fileSno, HttpServletResponse response) { |
|
|
|
public void fileDownload(int fileSno, HttpServletResponse response) { |
|
|
|
|
|
|
|
|
|
|
|
ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); |
|
|
|
ComFileBas comFileBas = comFileBasRepository.findById(fileSno).orElse(null); |
|
|
|
if(comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
if(comFileBas == null) throw new CustomException(ErrorCode.DATA_NOTFIND); |
|
|
|
|
|
|
|
|
|
|
|
log.info("comFileBas -> {}", comFileBas); |
|
|
|
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(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|